文章目录
- 基本了解
- 注释
- 常用数据类型
- 常用包
- 基本写法
- 变量定义&初始化
- 数组定义&初始化
- 默认数据类型
- 字符串-数字转换
- 字符-数字转换
本专栏还在持续更新: Cangjie仓颉程序设计-个人总结
这是双子专栏: 仓颉编程cangjie刷题录
基本了解
注释
注释使用方式同c++、Java
- 单行: //
- 多行:/* */
常用数据类型
- Rune: 其他语言中的char,但是 “不是ASCII码,而是Unicode,UTF-8”
- String: String中的每个元素取出来都是整型!该字符的Unicode!
- ”=“ 指两种类型相同,互为别名。
Rune // 其他语言中的char,但是 “不是ASCII码,而是Unicode,UTF-8”
Int8 = Byte
Int32
Int64 = Int
UInt32
Uint64 = UInt
String // 同理,String中的每个元素取出来都是整型!该字符的Unicode!
Bool
Float64
常用包
- std.console.* :读输入数据
- std.collection.* :容器
- std.convert.* :格式化输出
- std.random.* :类型转换
import std.core.* // 默认导入,无需显式导入
import std.console.*
import std.collection.*
import std.convert.*
import std.random.*
基本写法
变量定义&初始化
如果不使用默认数据类型,则需要写明数据类型。
var a:UInt32 = 97
var b:Rune = 'b'
var str:String = "520"
var str = "520" // 也是可以的
var arr:Array<Int> = [1, 2, 3]
var flag = false
数组定义&初始化
注意:使用item初始化二维数组时,赋值的是引用。
所以二维数组初始化一定要用这种写法:var f = Array<Array> (n + 1) {i => [0, 0]}
// 一维
var arr = Array<Int>(4) {_ => 0}
var arr1 = Array<Int>(4, {_ => 0})
var arr2 = Array<Int>(4, item: 0)// 二维
var f = Array<Array<Int>> (n + 1, {i => [0, 0]}) // 这样就是每个数组单独赋值,这么写就对了
var f = Array<Array<Int>> (n + 1) {i => [0, 0]} // 这样就是每个数组单独赋值,这么写就对了
var f = Array<Array<Int>> (n + 1, item: [0, 0]} // 这种方式修改一个元素全部都会修改,因为所有元素都是一个对象的引用
默认数据类型
- 默认整型为: Int64
- 默认浮点数为:Float64
- 默认字符、字符串为:String
var one = 1 // Int64
var two = '2' // String
var three = 3.0 // Float64
字符串-数字转换
是std.convert.*中的函数。
import std.convert.*var str:String = "520"
var str_value:Int = Int64.parse(str) // 520
字符-数字转换
字符Rune只能转为UInt32
整型数字都可以转为Rune
单个字节内,ASCII与Unicode等值
var a:UInt32 = 97
var b:Rune = 'b'
var str:String = "520"b = Rune(a) // 'a'
a = UInt32(b) // '98'var unicode_value_of_5 = str[0] // 53, String中的每个元素取出来都是整型!该字符的Unicode!
var c:Rune = Rune(str[0]) // '5'