终于等到你!julia的0.7和1.0

今天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……

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180809G1RDFD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券