华为的编程语言仓颉的beta版已经公开,可以随时下载,有没有佬有兴趣做个cangjie-mode
下载链接如下
这语言有啥优势?
没有优势,华为甚至不打算开源
看起来像是对标Swift的鸿蒙软件开发专用语言?
这年头连 .net 都开源了还有语言不准备开源它的编译器或者 vm?
是的,跟swift的定位一样
华为自称有很牛逼的gc以及针对他们自研芯片的相互优化,所以不打算开源,这个听个乐就得了
开源很容易暴露一些问题,不开源就只能靠猜,不能形成证据链。
大概看了下语法文档,看起来像是Java的变体,跟别的OOP语言相比没看出来有什么特点?依然是基于开源软件套皮魔改的路子,无非是魔改的程度不同。
站在巨人的肩膀上,并努力超越巨人
這白皮書感覺寫的人自己沒讀,markdown 語法錯的地方都沒有改。
见怪不怪了,都是草台班子,有可能人家压根没读过比较权威的 Markdown 资料,记法都是模仿学来的。我估计像全半角字符间夹空格这种事情更加不会注意;刚看了下大小写也有问题,官网上把 VS Code 打成 VScode
集成了好多目前流行的、很酷的 features 。不知道是否如白皮书所说的那么高效、安全。有时间了写个小东西玩玩看。
尾随 lambda 语法糖,我还是第一次见,感觉比较好玩,也让人迷惑。
好奇这个语法的优势是什么
也是回复 @ddaren
尾随 lambda 语法糖的功能,就是把闭包当作新语法使用。比如以下 python 代码
with open("/foo/bar") as f:
f.read_all()
用尾随 lambda 可以这么写 (伪代码)
using namespace file;
with("/foo/bar") { f =>
f.read_all();
}
# 等价于
file::with("foo/bar", { f => f.read_all() })
还可以这么用
[1, 2, 3].for_each { x =>
print(x);
}
第一眼感觉这个就是 Kotlin
这个特性是从kotlin抄的,swift也有这个特性,优势是可以更方便地以声明式语法编写UI,方便后续写鸿蒙平台的App,当然arkts也抄了这个特性
smalltalk 就有這個。
1 to: 20 do: [:x | x printNl ]
对,我看了 Kotlin 和 Swift 对 trailing lambda 的介绍,知道这个语法糖的展开是什么。除了若有似无的可读性,还有啥?
重复利用了 lambda 的语法,没有引入新的语法结构,就是它的特性。