Julia 的数据结构

Julia 的字符串十分好用,有许多现成的函数库:

 

start_with end_with first last

substring chop

 

Julia 的 && 和 || 用途十分广泛,因为它能做分支语句前缀:

 

a > 0 || error "a less zero"

a == 1 && return a1()

a == 2 && return a2()

 

由于 Julia 并不检查 && || 连接的语句的返回值,因为这些语句一旦执行,就不会在返回什么值,要么输出错误信息,要么跳出函数。

 

Julia 的 Array 可以用于大多数的数据类型:List Vec

 

因为它可以从头部或尾部插入元素,也能从尾部或头部弹出元素。这明显是链表的特性,这样的话随机访问,效率是否低下呢?

 

Dict 可以作为 Table Tree Hash 因为它也是泛型定义的:

 

typealias Dict<String,String> Table

typealias Dict<String,Table> Tree

 

Julia 的 IO 设计也能让我们轻松使用 Buffer:

 

Julia 内置了许多函数,可以方便的直接使用。另外可以使用类似动态语言的风格,不必声明变量的类型,函数参数的类型,返回的类型。这是因为 Julia 内置了一个强大的类型推导系统,它把这些缺失的类型都用自己的方式推导成自己能使用的类型,这也可以看出 Julia 对自己类型系统的自信。

 

当然,在必要的地方声明类型,也会减少编译器的负担,让代码运行起来更符合自己的预期。

 

我一直不明白 Julia 没有设计 switch ... case 语句的原因,它既然有那么好的宏设计系统,又追求代码的简洁,为何对这种明显让代码更简洁的表达方式视而不见呢?

 

关键字 function 的设计更让我迷惑,明明可以用更短的 func,def, sub, fn 作为关键字,为何用这么长的呢?这只能说明 Julia 的核心语法设计的决定权在某个有强迫症的家伙身上。

 

另外一种必要的数据结构是 struct, 在以前的版本中,没有这个关键字,有另外一种声明结构的语句:

 

mutable struct A {

name::Int

}

 

用于那么可以修改的结构,问题是不能修改的结构有啥用?难道 tuple 就是用这种不能修改的结构设计的?

转载于:https://my.oschina.net/u/563463/blog/1928653

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值