Julia: 由0.3 升级到0.4 版本的变化

      Julia 的0.4 版本(release)马上就要出来,但从0.4 candidate 版本可以看到,和先前版本相比,0.4+版本在一些地方明显的不同和变化。

      最大的惊喜是,using库的速度比原先有非常大的进步,提升了一些客户体验。赞一下。

       当然,升级也会带来一些不适,代价是需要对原先的代码进行一些调整。今天主要讲讲其中的调整。

1、库的变化

      Color => Colors

      Dates=>Base.Dates  # Dates库内置成Base.

      在这里,Date(2015,1,1) 和DateTime(2015,1,1,9,30) 可以直接使用,但是,year(), month(),day(), 必须是Dates.year(),Dates.month(),Dates.day().

      或者先加上 using Base.Dates, 这样就可以直接使用year()等.

2、一些用法的变化

(1) 比如push!功能的变化。

     (a)对于Dict(), 更多改为 由push! => setindex!

     但更为重要的是: push!(data, key, value ) => setindex!(data,value,key). 因为这个变化,所以不能单纯用替换来进行升级。

     需要说明的是,这个变化往往需要时间来适应。

     (b) 对于Array ,建议由push! 进行操作,而不是setindex!().

     比如,对于data =Float64[] # 或Array{Float64,1}()

     setindex!(data,0.1) # 将会报错!

     push!(data,0.1)       # 正常

(2) 空格处理

    原来比如 函数名后 有二个空格,再() 函数,即 fun  (data::Array{Float64,1}), 在fun签名后有空格的,在0.4版本认为不妥。

(3)函数的变化:ifloor(), int() 等

    ifloor(x)               => floor(integer,x)

    int(x)                    => round(Int,x)

    parseint(Int64,x) => parse(Int64,x)

    String                  => AbstractString

    Base.Uint8         => Base.UInt8  等

(4) 语法的变化

    (a) Dict

          比如,Dict的写法进行了进一步的规范:

          ["a"=>0.1, "b"=>0.2]  =>Dict("a"=>0.1,"b"=>0.2) # 已经要求要加Dict .

    (b) [1:4] 已经改成 collect(1:4).


 (5)  Sys =>Base . 这个会影响到路径的设置,特别提醒!

push!(Sys.DL_LOAD_PATH, "/opt/local/lib")    => :Base.DL_LOAD_PATH

3、其它

    另外,还有一些是IDE平台LT和一些库未和跟随0.4升级的报错或warning.

    不过,若是由于其它的库没有升级(比如函数、语法过期等),可以下Compat.jl库,using Compat; 后可以把WARNING不显示。

    后面再一一总结吧。当然,如果有自动升级处理的方式或机制,会更好,毕竟,升级还是有一定工作量的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值