1. 前言
华为推出了自研编程语言——仓颉(Cangjie),这是我国完全自主研发的计算机语言,值得自豪。小编经过两天的漫长等待后,终于通过审核,拿到了仓颉编译工具。现在华哥就给大家来开箱体验下。
2. 快速上手
开发环境:Debian GNU/Linux 11 (bullseye)
编译工具:cjc(Cangjie Compiler: 0.51.4)
Hello World 示例
让我们从经典的Hello World程序开始,这是学习任何新语言的第一步。在仓颉中,编写一个Hello World程序非常简单:
// the first cangjie program
main() {
println("Hello, World!")
}
保存并编译,编译后执行程序:
# cjc ./hello.cj -o hello
# ./hello
Hello, World!
代码解读
main() { ... }
: 这定义了一个名为main
的函数,它是程序的入口点,这与 C/C++/Go 语言很相似。在编译并执行程序之后,系统自动从 main 开始执行花括号中的代码。print("Hello, World!")
: 这一行代码使用了print
函数,打印输出了字符串"Hello, World!"到控制台。- 以“//”开头的内容表示注释,它是对代码的说明和对程序的解释,不参与程序编译。用“/…/”则可以实现多行注释。
点评:main方法比其他语言更加简洁,感觉已经做到最简了。
3. 基本数据类型介绍
仓颉目前的基本数据类型,包括:整数类型、浮点类型、布尔类型、字符类型、字符串类型、Unit
类型、元组类型、区间类型、Nothing
类型。
整数类型
整数类型分为有符号(signed)整数类型和无符号(unsigned)整数类型。
有符号整数类型包括 Int8、Int16、Int32、Int64 和 IntNative,分别对应编码长度为 8-bit、16-bit、32-bit、64-bit 和平台相关大小的有符号整数值的类型。
无符号整数类型包括 UInt8、UInt16、UInt32、UInt64 和 UIntNative,分别表示编码长度为 8-bit、16-bit、32-bit、64-bit 和平台相关大小的无符号整数值的类型。
var x = 100i8 // x is 100 with type Int8
var y = 0x10u64 // y is 16 with type UInt64
var z = 0o432i32 // z is 282 with type Int32
i8为Int8的简写,u64代表UInt64,i32代表Int32,其它类推。
点评:这种整数类型定义更像GO的语法
浮点类型
浮点类型包括 Float16、 Float32 和 Float64
let a: Float32 = 3.14
let b: Float32 = 2e3
let c: Float32 = 2.4e-1
点评:跟Go一样,有点感叹仓颉是集各家语言之优点。
布尔类型
布尔类型使用 Bool 表示,用来表示逻辑中的真和假。布尔类型只有两个字面量:true 和 false。
let a: Bool = true
let b: Bool = false
字符类型
字符类型使用 Char 表示,可以表示 Unicode 字符集中的所有字符。
let a