04-标识符和关键字
在仓颉语言中,我们用到自定义的变量、函数、类等元素的名称,都必须用到标识符。我们可以也将刚才的变量、函数、类等看成是我们
可以在仓颉的这个世界中,自己给一些小朋友的名称。既然是要起名字,那么就有一些范围和一些限制。举个例子:我们不会给一个小孩
起这样的名字:卖75块钱眉笔的那个人。这样的名称不合法也不合理
标识符分类两类
- 普通标识符
- 原始标识符
普通标识符
普通标识符的命名规则有如下两种
- 两个组成部分【AB】,【A】部分表示英文字母开头,【B】可以是英文字母、数字、和下划线
- 三个组成部分【ABC】,【A】部分是一个或者多个下划线,【B】部分是英文字母,【C】部分可以是英文、数字、和下划线
正例
c++
package project1 // 标记当前项目的名称
main() {
let abc = "小万1"
let abc123 = "小万"
let _abc = "小万"
let __ = "小万" // 两个下划线
let _abc123 = "小万"
}反例
c++
let 123="小万"
let *123="小万"
let )123="小万"
let +123="小万"
let _="小万"// 1个下划线 可以声明,但是在打印它时,会提示错误原始标识符
原始标识符在实际开发中有的场景不多,主要用在仓颉关键字作为标识符的场景。
可以理解为是让你可以定义一些特殊或者奇葩的名字。
原始标识符是在普通标识符或仓颉关键字的外面加上一对反引号
如
`abc`
`if`
`else`正例
c++
package project1 // 标记当前项目的名称
// 结构体 if 作为奇葩的名字
struct `if` {
let name = "小万"
}
main() {
let a: `if` = `if`()
println(a.name)
println()
}关键字
在仓颉语言中,它把一些名字作为的了仓颉的关键字或者保留字,意思是有特殊的用意,不能给我们开发者当成普通的标识符来使用。
如 let
let let = "小万" // 此时 let 就是错误的使用方式 因为let 是关键字关键字一览
| 关键字 | 关键字 | 关键字 |
|---|---|---|
| as | abstract | break |
| Bool | case | catch |
| class | const | continue |
| Rune | do | else |
| enum | extend | for |
| func | false | finally |
| foreign | Float16 | Float32 |
| Float64 | if | in |
| is | init | import |
| interface | Int8 | Int16 |
| Int32 | Int64 | IntNative |
| let | mut | main |
| macro | match | Nothing |
| open | operator | override |
| prop | public | package |
| private | protected | quote |
| redef | return | spawn |
| super | static | struct |
| synchronized | try | this |
| true | type | throw |
| This | unsafe | Unit |
| UInt8 | UInt16 | UInt32 |
| UInt64 | UIntNative | var |
| VArray | where | while |
总结
标识符的作用就是在告诉我们 怎么起名字是合理,大家按照正常起名字的意思来对待即可。