发布于 2017-05-13 01:01:21 | 164 次阅读 | 评论: 0 | 来源: 网友投递
Kotlin 基于JVM的编程语言
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。
Kotlin/Native v0.2 发布了,这是 Kotlin/Native 技术预览版的功能和修复程序更新。本次更新增加了对协同程序和跨模块内联函数的支持,以及错误修复和改进。
该版本包括以下内容:
如何为并发非阻塞 IO 使用协程(coroutines)的例子
使用 GTK 的 GUI 应用程序
由 Julius Kunze 提供的 TensorFlow 机器学习框架客户端
例如,像这样的代码:
var connectionId = 0 acceptClientsAndRun(listenFd) { memScoped { val bufferLength = 100L val buffer = allocArray<ByteVar>(bufferLength) val connectionIdString = "#${++connectionId}: ".cstr val connectionIdBytes = connectionIdString.getPointer(this) try { while (true) { val length = read(buffer, bufferLength) if (length == 0L) break write(connectionIdBytes, connectionIdString.size.toLong()) write(buffer, length) } } catch (e: IOException) { println("I/O error occurred: ${e.message}") } } }
可用于通过协程处理多个并发套接字 IO,并单独并发地为每个客户端提供服务
创建一个带有事件侦听器的 GTK 按钮,只需执行以下操作:
val button = gtk_button_new_with_label("Click me!")!! g_signal_connect(button, "clicked", staticCFunction { _: CPointer<GtkWidget>?, _: gpointer? -> println("Hi from Kotlin") } )
因此,v0.2 版本允许使用 Kotlin 创建功能齐全的体积小巧的原生应用程序,而且编译和运行时性能均有明显改善,可再分发的规模也已有所下降。
此版本中的完整更改列表可以在变更日志中找到。
Kotlin/Native 能把 Kotlin 编译成机器码,由 JetBrains 公司开发。注意,该项目仍处于实验性阶段,请选择合适的场景进行使用。
Kotlin/Native 利用 LLVM 将 Kotlin 编译成机器码,现在已支持 4 个平台:
Linux (暂时只是 Ubuntu)
Mac OS
iOS
Raspberry Pi