今天Julia终于公布1.0的最新版本,6年过去,终于等到了1.0。一般而言,进入1.0后,语法相对而言会稳定下来,不会突然发生太大的变化。这是个很值得入手学习的时间~
0.7?1.0?
Julia 0.7版本才发布1天(2018年8月8日),今天正式放出1.0版本。1.0 目前还没有官方二进制(发稿提供了...)。不过,0.7版本和1.0版本是一致的,Julia 0.7版本将对0.6版本中的某些功能进行弃用,但只是会给出警告,1.0中将正式移除这些被弃用的特性。换句话说,如果之前熟悉0.6x的同学,可以考虑在0.7下学习新的变化,只要代码在0.7版本中没有任何警告,在1.0的版本下运行也是没问题的。
0.7版本新特性
可以使用新的 变量宏测试局部变量的是否已经定义。(这对于想要有条件地初始化变量可能特别有用)
函数参数的解构:把类似 的表达式用作函数参数名称的时候,参数将自动解包成局部变量 和 。
0.7以下只支持返回值解构,不支持参数解构
具名元组:可以对元组中的元素赋予名字,比如 ,并可以用类似 的名称访问其中元素。
请不要把元组单纯理解成不可变的列表,元组还有一项很重要的功能是作为记录。
Python的具名元组
Python的具名元组可以通过 中的 实现。不过感觉还是有点麻烦,需要提供一个类名。
基于具名元组,有关键字参数容器 。可以在上面用类似字典那样的键和值,并且可以对 迭代键值对。 不能包含多个具有相同参数名称的参数。
可以通过Unicode组合标记,自定义中缀运算符。比如, 被解释成中缀运算符,并且和运算符具有相同的优先级。
what?什么诡异符号?没事,可以按个 进入帮助模式,然后粘贴,回车。
julia同学还贴心给出输入提示……我觉得要是代码通篇都是这种符号,那就*。
可以直接解析成
比如,现在你可以这样写 而不需要 ,相当于有了一个快捷方式。
的构造可以被用来同时提供 和正常函数实现。
是一个特殊的宏,它允许定义生成函数。可以根据参数类型生成专用代码。
生成函数可以实现正在运行时的高效率,但是在编译时需要付出成本:必须为每个具体参数类型的每个组合生成新的函数体。0.7版本为了解决这个问题,提供了一个方法,用 实现两个版本的代码。
在函数内部,代码提供了函数的两种实现:生成函数使用 中的块,而正常的函数实现使用 中的代码。
添加⟂(\perp) 操作符用来比较优先级。
添加了 单例对象(类型为 )以表示缺失值。可以实现三值逻辑,类似SQL语句中的 和R语言中的 。
可以用来访问字段的点语法(dot-syntax)现在可以通过向 和 添加方法来重载,可以这么做的还有 。(这个对兼容 和更好地支持 都是有一定好处的)
当使用 宏的时候, 的值可以定义在 的内部
显示声明的关键字参数必须被赋值,如果调用者省略了默认值,则抛出异常。
0.7以下版本要求函数关键字参数声明的时候必须要有默认值。
现在是可以用作广播 ,在这之前是个解析错误。
最后
等了这么多年,终于等到了1.0……
领取专属 10元无门槛券
私享最新 技术干货