这里写自定义目录标题
花了半天时间,对华为新出的仓颉编程语言做了简单的了解,整体观感如下:
- 仓颉语言看起来是一门大而全的语言,吸纳了现存的很多中编程语言的范式和语法。
- 语法非常像Swift,有些语法又有rust的影子;
- 静态类型语言,但编译为二进制可执行文件,无虚拟机。并发、垃圾回收与内存管理模块与java类似;
- 支持声明式UI语法,类似于现在ArkUI使用的ArkTS语法,估计以后HarmonyOS的开发语言会从ArkTS转化为仓颉。
目前仓颉语言只开放了文档,未开放sdk让开发者测试开发。可以申请仓颉的开发者预览版Beta招募,链接Here
相似点(主要与Swift进行对比)
-
类型扩展
-
添加函数 (swift包含)
仓颉: extend String { func printSize() { print(this.size) } } "123".printSize() // 3Swift: extension String { func printSize() { print(self.size) } } "123".printSize() // 3 -
添加属性 (swift不包含)
-
添加操作符重载 (swift包含)
仓颉: struct Point { let x: Int let y: Int init(x: Int, y: Int) { ...} operator func +(rhs: Point): Point { return Point( this.x + rhs.x, this.y + rhs.y ) } } let a: Point = ... let b: Point = ... let c = a + bSwift: struct Point { let x: Int let y: Int init(x: Int, y: Int) { self.x = x self.y = y } static func +(lhs:Point, rhs: Point) -> Point { return Point(x: lhs.x + rhs.x, y: lhs.y + rhs.y) } } let c: Point = Point(x: 1, y: 1) let d: Point = Point(x: 2, y: 2) let e = c + d -
实现接口 (swift包含)
仓颉: sealed interface Integer { } extend Int8 <: Integer { } extend Int16 <: Integer { } extend Int32 <: Integer { } extend Int64 <: Integer { } let a: Integer = 123 // okSwift: protocol Integer { } extension Int8 : Integer { } let a :Integer = Int8(123)
-
-
代数数据类型和模式匹配
仓颉中的枚举定义与使用: enum BinaryTree { | Node(value: Int, left: BinaryTree, right: BinaryTree) | Empty } func sumBinaryTree(bt

最低0.47元/天 解锁文章
1842





