Skip to content

04-标识符和关键字

在仓颉语言中,我们用到自定义的变量、函数、类等元素的名称,都必须用到标识符。我们可以也将刚才的变量、函数、类等看成是我们

可以在仓颉的这个世界中,自己给一些小朋友的名称。既然是要起名字,那么就有一些范围和一些限制。举个例子:我们不会给一个小孩

起这样的名字:卖75块钱眉笔的那个人。这样的名称不合法也不合理

标识符分类两类

  1. 普通标识符
  2. 原始标识符

普通标识符

普通标识符的命名规则有如下两种

  1. 两个组成部分【AB】,【A】部分表示英文字母开头,【B】可以是英文字母、数字、和下划线
  2. 三个组成部分【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 是关键字

关键字一览

关键字关键字关键字
asabstractbreak
Boolcasecatch
classconstcontinue
Runedoelse
enumextendfor
funcfalsefinally
foreignFloat16Float32
Float64ifin
isinitimport
interfaceInt8Int16
Int32Int64IntNative
letmutmain
macromatchNothing
openoperatoroverride
proppublicpackage
privateprotectedquote
redefreturnspawn
superstaticstruct
synchronizedtrythis
truetypethrow
ThisunsafeUnit
UInt8UInt16UInt32
UInt64UIntNativevar
VArraywherewhile

总结

标识符的作用就是在告诉我们 怎么起名字是合理,大家按照正常起名字的意思来对待即可。

Released under the MIT License.