发布于 2016-09-20 05:50:29 | 85 次阅读 | 评论: 0 | 来源: 网友投递
Julia 跨平台移动应用框架
基本CSS3文件、JS库和各个平台的运行库构成。不像PhoneGap,Julia不仅仅包含调用本机代码的接口层,它还包含Model-View-Controller(MVC)支持,Delegation支持,OAuth支持,异步数据库存取接口,HTML选择符(类jQuery调用接口),HTML模版(允许嵌入JS代码)等应用开发必备的API接口。
Julia 0.5.0 发布了,本次更新包括了很多新的语言特性。
部分更新内容如下:
Generator expressions: `f(i) for i in 1:n` ([#4470]). This returns an iterator that computes the specified values on demand. This is useful for computing, e.g.
`sum(f(i) for i in 1:n)` without creating an intermediate array of values.
Generators and comprehensions support filtering using `if` ([#550]) and nested iteration using multiple `for` keywords ([#4867]).
Fused broadcasting syntax: ``f.(args...)`` is equivalent to ``broadcast(f, args...)`` ([#15032]), and nested `f.(g.(args...))` calls are fused into a single `broadcast` loop ([#17300]).
Similarly, the syntax `x .= ...` is equivalent to a `broadcast!(identity, x, ...)`call and fuses with nested "dot" calls; also, `x .+= y` and similar is now equivalent to `x .= x .+ y`, rather than `x = x .+ y` ([#17510]).
Macro expander functions are now generic, so macros can have multiple definitions(e.g. for different numbers of arguments, or optional arguments) ([#8846], [#9627]).
However note that the argument types refer to the syntax tree representation, and not to the types of run time values.
Varargs functions like `foo{T}(x::T...)` may now restrict the number of such arguments using `foo{T,N}(x::Vararg{T,N})` ([#11242]).
`x ∈ X` is now a synonym for `x in X` in `for` loops and comprehensions, as it already was in comparisons ([#13824]).
The `PROGRAM_FILE` global is now available for determining the name of the running script ([#14114]).
The syntax `x.:sym` (e.g. `Base.:+`) is now supported, while using `x.(:sym)` or `x.(i)` for field access are deprecated in favor of `getfield` ([#15032]).
Function return type syntax `function f()::T` has been added ([#1090]). Values returned from a function with such a declaration will be converted to the specified type `T`.
Many more operators now support `.` prefixes (e.g. `.≤`) ([#17393]). However, users are discouraged from overloading these, since they are mainly parsed in order to implement backwards compatibility with planned automatic broadcasting of dot operators in Julia 0.6 ([#16285]). Explicitly qualified operator names like `Base.≤` should now use `Base.:≤` (prefixed by `@compat` if you need 0.4 compatibility via the `Compat` package).
User-extensible bounds check elimination is now possible with the new `@boundscheck` macro ([#14474]). This macro marks bounds checking code blocks, which the compiler may remove when encountered inside an `@inbounds` call.
点击完整更新日志查看更多内容
发行说明及下载地址: