1 语法 Lambdas并不是新概念,在其它语言中已经烂大街了.直接进入主题,先看语法: [ captures ] ( params ) specifiers exception attr -> ret { body } (1) [ captures ] ( params ) -> ret { body } (2) [ captures ] ( params ) { body } (3) [ captures ] { body } (4) captures:捕获参数.详细格式见下图. 格式 意…
1 关键字noexcept 从C++11开始,我们能看到很多代码当中都有关键字noexcept.比如下面就是std::initializer_list的默认构造函数,其中使用了noexcept. constexpr initializer_list() noexcept : _M_array(0), _M_len(0) { } 该关键字告诉编译器,函数中不会发生异常,这有利于编译器对程序做更多的优化. 如果在运行时,noexecpt函数向外抛出了异常(如果函数内部捕捉了异常并完成处理,这种情况不…
1 统一初始化(Uniform Initialization) 在C++ 11之前,所有对象的初始化方式是不同的,经常让写代码的我们感到困惑.C++ 11努力创造一个统一的初始化方式. 其语法是使用{}和std::initializer_list,先看示例. int values[]{ 1, 2, 3 }; std::vector<int> v{ 2, 3, 6, 7 }; std::vector<std::string> cities{ "Berlin", &…
1 语法改进 1.1 模板表达式中的空格 在c++03 及以前 vector<list<int>>; //Error vector<list<int> >; //OK c++11 vector<list<int>>; //OK 1.2 nullptr 和 std::nullptr_t 在c++03 及以前 void f(int); void f(void*); f(0); //call f(int) f(NULL); //有歧义 c+…
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在几天前,geopandas发布了其0.11.0正式版本,距离其上一个版本(0.10.2)发布已过去大半年,在这一次的新版本更新中又为我们带来了哪些重要的新特性呢,今天的文章中我就来带大家一探究竟. 2 geopandas 0.11版本重要新特性一览 你可以在旧版本geopandas的基础上进行升级,也可以新建虚拟环境直接安装…
声明:本文参考了Alex Allain的文章http://www.cprogramming.com/c++11/c++11-lambda-closures.html 加入了自己的理解,不是简单的翻译 C++11终于知道要在语言中加入匿名函数了.匿名函数在很多时候可以为编码提供便利,这在下文会提到.很多语言中的匿名函数,如C++,都是用Lambda表达式实现的.Lambda表达式又称为lambda函数.我在下文中称之为Lambda函数. 为了明白Lambda函数的用处,请务必先搞明白C++中的自动…
MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级,并且不支持从 MySQL 8.0 降级到 MySQL 5.7(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本).唯一受支持的替代方案是在升级之前对数据进行备份. MySQL 8.0是全球最受欢迎的开源数据库的一个…
今年7月底,JDK11已经进入了Rampdown Phase Two阶段,这标志着该版本所有特性已经被冻结,不会有新的JEP会加入版本中. 这一阶段将会修复P1–P2级BUG,之后,JDK11预定于今年9月25日发布.确定发布的17个JEP如下,其中包括14个新特性以及3个移除的功能: 181: Nest-Based Access Control(基于嵌套的访问控制) 309: Dynamic Class-File Constants(动态类文件常量) 315: Improve Aarch64…
在2.6版本发布两个月之后,Git 2.7发布.该版本带来了许多新特性以及性能的提升. 本文选取了Git 2.7带来的主要变化: git remote支持get-url子命令,可以显示指定远端的URL. git rebase新增了一个命令行选项--no-autostash,可以覆盖配置变量rebase.autostash. git worktree支持list子命令,可以显示代码库的工作树及相关的分支.工作树是Git 2.5初次引入的一个特性,旨在使在同一个代码库的多个分支上工作更简单. git…
1. 幂等性设计1.1 引入目的生产者重复生产消息.生产者进行retry会产生重试时,会重复产生消息.有了幂等性之后,在进行retry重试时,只会生成一个消息. 1.2 幂等性实现1.2.1 PID 和 Sequence Number为了实现Producer的幂等性,Kafka引入了Producer ID(即PID)和Sequence Number. PID.每个新的Producer在初始化的时候会被分配一个唯一的PID,这个PID对用户是不可见的.Sequence Numbler.(对于每个P…
Xcode8新特性 Interface Builder 随着14年的iPhone6和6P出来之后,iPhone的屏幕尺寸也越来越多,屏幕适配是一个需要解决的问题,以后不一定苹果又出什么尺寸的iPhone呢. 在iPhone6和6P发布的同一年,苹果推出的Xcode6中在原有的Auto layout的基础上,添加了Size Classes新特性,通过这个新特性可以使用一个XIB或者SB文件,适配不同的屏幕以及iPhone和iPad两种设备. 在Xcode8中,苹果推出了更加强大的可视化编辑工具预览…
网格即插即用(GPnP) 网格即插即用帮助管理员来维护集群,以前增加或删除节点需要的一些手动操作的步骤现在可以由GPnP来自动实现. GPnP不是一个单独的概念,它依赖于以下特性:在一个XML配置文件中储存集群信息:集群时间同步(CTSS):网格命名服务(GNS):单一客户端访问名称(SCAN):服务器池(Server Pools). GPnP为公网和私网连接.ASM spfile.CSS投票盘定义了元数据网络接口,profile.XML文件通过wallet保护以避免被修改.如果你需要手动修改p…
JDK/Java 13 在一个月前已经发布,该版本带来了 5 大新特性,笔者观察到其中的 Text Blocks(文本块)特性似乎被讨论最多. 文本块特性与常见的 Python """any input""" 特性一样,它支持多行字符串文字,可以不需要使用大多数转义序列,同时可以让开发人员控制格式. 虽然这不是特别复杂的特性,但对于开发中想将 HTML 代码引入 Java 来说是极大的便利,代码可读性也极大提高. 关于 Java 13 的其它新特…
jdk 9 新特性 1.集合加强 jdk9 为所有集合(List/Set/Map)都增加了 of 和 copyOf 方法,用来创建不可变集合,即一旦创建就无法再执行添加.删除.替换.排序等操作,否则将报错: java.lang.UnsupportedOperationException 异常. 一般在特定场景下使用. List strs = List.of("Hello", "World");       List strsCopy = List. copyOf(s…
MemberNotNullAttribute是 .NET 5 的新增特性,位于System.Diagnostics.CodeAnalysis.该特性用于显式声明,调用此方法后该值不再为 Null.示例如下,创建一个 csproj,启用 C# 8.0 的空引用类型新特性. <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net5.0</TargetFra…
前言 在日常开发中我们经常会将JSON.XML.HTML.SQL.Regex等字符串拷贝粘贴到我们的代码中,而这些字符串往往包含很多的引号",我们就必须将所有引号逐个添加转义符\进行转义.这个转义十分麻烦,且容易出错,而当我们们需要替换这些字符串时,重新粘贴进来的文本仍需要再次进行转义,简直让人崩溃. 在我的工作中经常会遇到这么一个场景,对于某核心业务的方法,业务执行前一般会进行日志输出参数对象(Json格式),这样可在业务出现故障时追溯到当时的参数值,有利于事后补偿或复现bug等. 假设故障发…
一.什么是生成器函数(generator function)? 生成器函数是ES6的新特性之一,它是一个在执行时能中途暂时退出,后面重新调用又能重新进入继续执行的一种函数. 并且在函数内定义的变量的所有状态不受中途退出的影响. 二.语法 声明方式: function* 函数名([参数1[, 参数2[, ... 参数n]]]) { JS语句 } 调用说明: 1) 调用生成器对象时会返回一个生成器的迭代器 2) 该迭代器中有一个next()方法,它返回一个包含value和done的对象 3) 每次调…
Lambda:表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数.Lambda表达式可以表示闭包(注意和数学传统意义上的不同). 表达式: C#的Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”.语法如下:形参列表=>函数体                      C++ 11 标准的一大亮点是引…
提出 在匿名函数出现之前,所有的函数都需要先命名才能使用 1 2 3 4 5 function increment($value) {     return $value + 1; } array_map('increment', [1, 2, 3]); 有的时候函数可能只需要使用一次,这时候使用匿名函数会使得代码更加简洁直观,同时也避免了函数在其他地方被使用 1 2 3 array_map(function($value){     return $value + 1; }, [1, 2, 3…
  新的字符串表示方式——原生字符串(Raw String Literals) C/C++中提供了字符串,字符串的转义序列,给输出带来了很多不变,如果需要原生义的时候,需要反转义,比较麻烦. C++提供了,原生字符串,即字符串中无转义,亦无需再反义.详细规则见带码: #include <iostream> using namespace std; string path = "C:\Program Files (x86)\alipay\aliedit\5.1.0.3754"…
这个特性很赞,直接给例子吧,假如我要设计一个类,CachedFetcher内部可能使用std::map也可能使用std::unordered_map,也可能是其它的map,怎么设计呢?没有C++11变长模板之前这很费劲.. 因为map的模板参数可不是只有key,value两个啊,还有一些有默认参数的template参数...     template<typename _Key, typename _Value, template<class _Kty, class _Ty, typename…
1.采用新的文件系统,不再通过工程文件(.sln和.csproj)来定义项目文件清单. 解决方案文件还是*.sln,但项目文件变成*.xproj了.在项目文件夹下新增的文件会被自动添加到项目中,不用再手动地执行把此文件包含在项目中. 2.Startup类 该类可以看作是整个ASP.NET Core的入口,该类主要存在3个方法: Main--入口方法: ConfigureServices--向IoC容器注册组件: Configure--注册Mideware 也许你第一次见到这个类会有点不明觉厉,该…
3.1.9崭新的Template特性 Variadic Template 可变参数模板 void print() { } template <typename T, typename… Types> void print (const T& firstArg, const Types&… args) { std::cout<<firstArg<<std::endl; print(args); } 如上,如果传人1或多个实参,上述的function tem…
1.nullptr void foo(char *); void foo(int);foo(NULL) //编译出错,不知道调用哪个,可能调用了foo(int)foo(nullptr) //ok ,调用foo(char*)//用nullptr替换原先的NULL 2.constexpr #define LEN 10 int len_foo() { return 5; } int main() { char arr_1[10]; char arr_2[LEN]; int len = 5; char…
1 .  引入github (1) 在Xcode 9 中,引入了 gitHub,新源代码管理导航器 可以展示branch分支和 tag标签. (2)点进去,就可以看指定一次commit了哪些东西 2 . 创建新的颜色 asset catalog 通常我们会New image  set, 现在 可以New color set . 然后填充 rgb alpha 值 调用: 3 .  真机无线调试(手机系统也得是iOS11) 暂不添加 参考: (1)  http://code.replays.net/…
最新版本SDK优化了开发体验,编译过程会提供更多提示警告,建议你修改.这些功能也可以自主选择用或者不用,当然,苹果喜欢你用他推荐的东西... 1 . @avalibale 语法,同步判断当前iOS系统是否满足需求.例如: if (@available(iOS 11, *)) { // >= 11 DLog(@"XXX1"); } else if (@available(iOS 10, *)) { //>= 10 DLog(@"XXX2"); } else…
sa-token是什么? sa-token是一个JavaWeb轻量级权限认证框架, 官网首页:http://sa-token.dev33.cn/ 如果你经常使用腾讯QQ,就会发现它的登录有如下特点:它可以手机电脑同时在线,但是不能在两个手机上同时登录一个账号 同端互斥登录,指的就是像腾讯QQ一样,在同一类型设备上只允许单地点登录,在不同类型设备上允许同时在线 在sa-token中如何做到同端互斥登录? 首先在配置文件中,将 allowConcurrentLogin 配置为false,然后调用登录…
本文所有Demo的运行环境为nodeJS, 参考:让nodeJS支持ES6的词法----babel的安装和使用 : 函数的默认值: 如果有参数 ,那就用参数, 如果没有参数, 那就用默认的参数: ajax的请求经常要做这些判断, ES6规定了新的表达式, 让判断参数的逻辑更加简单: function fn(a = , b = , c = ) { console.log(a,b,c); } fn(); //输出 1, 2, 3; fn(,,); //输出 4, 5, 6 如果调用函数的时候不想给函…
SELECT regexp_substr('公司1,贵公司2', '[^,]+', 1, LEVEL, 'i') FROM dualCONNECT BY LEVEL <= length('公司1,贵公司2') - length(REPLACE('公司1,贵公司2', ',', '')) + 1 以上为字符串带分隔符的转换为列 Oracle11.2新增了LISTAGG函数,可以用于字符串聚集,测试如下: 1,版本SQL> select * from v$version; BANNER------…
本文摘自ECMAScript6入门,转载请注明出处. 一.函数参数默认值 1. ES6允许为函数的参数设置默认值,即直接写在参数定义的后面. function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello 这种写法有两个好处:首先,阅读代码的人,可以立刻意识到哪些参数是可以省略…