一、标识符的命名规则
1.有字母、下划线、数字组成
2.不能以数字开头
3.区分大小写(如Student和student是不同的标识符)
4.不可使用关键字作为标识符
二、标识符的命名规范
1.小驼峰命名法(多用于函数和变量的命名)
1.1当标识符仅有一个单词时,该单词小写,如name
1.2当标识符由两个及以上的单词组成时,从第二个单词开始,每个单词的首字母大写,如:schoolName
示例代码:
2.大驼峰命名法(多用于常量的命名)
2.1单词里的所有字母均大写,如:MAX_VALUE
示例代码:
三、常量、可变变量、不可变变量
1.常量的命名: 关键字const 常量名 : 数据类型 = 值
*常量在命名时,一定要赋值,并且其值不可改变
示例代码:
2.可变变量:使用关键字var修饰变量
*命名:var 变量名:数据类型 = 值
*可变变量定义时可以不赋值,可以多次改变其值
示例代码:
3.不可变变量:使用关键字let修饰变量
*命名:let 变量名:数据类型 = 值
*不可变变量定义时可以不赋值,一旦赋值后便不可改变其值
示例代码:
四、对于类而言,分为静态变量和实例(非静态)变量
静态变量属于类,而实例变量属于具体的对象,仓颉编程语言中严格区分
示例代码:
五、仓颉语言的数据类型
1.基本数据类型(值类型)
1.1 整数类型:Int8、Int16、Int32、Int64 (数字越大,表示数的范围越大)
*尽量使用Int64类型,避免在运算时的不需要的类型转换
1.2 浮点类型: Float16、Float32、Float64(数字越大,表示精度越高,小数点后位数越多)
1.3 布尔类型:Bool (true / false)
1.4 字符类型: Rune
1.5 字符串类型:String
1.6 元组类型
1.7 区间类型
*区间类型里面的值,数据类型一致
*start..end: step start: 开始,end:结束; step:步长
1.8 unit类型
可以将其理解成一个括号,作为方法的返回值时,以括号的形式返回
1.9 Nothing类型
在仓颉语言中,break、continue、return、throw的类型均为Nothing,当程序执行到这些表达式时,他们之后的代码便不会执行。break和continue只能在循环体中使用,return只能在方法中使用。
2.引用类型
使用类(class)、枚举(enum)、接口(interface)关键字定义的,都是引用类型。
值类型和引用类型在赋值时的区别:
值类型在赋值时,是将变量的副本赋值给另一个变量,二者的存储地址不一致,因此改变其中一个的值,不会影响另一个的值。
示例代码:
引用类型在赋值时,进行的是地址的传递,二者均指向同一块地址,因此改变其中一个的值,会影响另一个。
示例代码:(以class为例)
3.struct自定义类型
* 定义时使用struct关键字修饰
*该类型不支持继承(不能有子类)
* struct自定义类型是个值类型
在struct自定义类型中,可以定义:
1.成员变量:静态变量,实例(非静态)变量
2.构造函数:主构造函数(只能有一个):方法名与struct定义的名字一致
普通构造函数(可以有多个):方法名为init,有多个时,方法名一致,参数列表不同,形成构造函数重载,目的是为了给创建自定义类型struct的不同对象提供多种入口
*二者均不能使用关键字func修饰
*静态构造函数,用于初始化静态变量
3.静态函数
4.实例(非静态)函数
*如果修改实例变量的值,使用mut关键字
示例代码:
六、.tips:
1.仓颉编程语言中,不支持前置运算,只支持后置运算,如:n++
2.插值字符串 ${变量名},如下图:
3.“+”在使用连接作用时,两边需要为字符串类型
4.仓颉语言支持自动类型推断。声明变量时,变量名后可以不注明数据类型,直接赋值
5.关键字 is 可用于判断数据类型,返回值为布尔类型