HarmonyOS 鸿蒙Next中跟老卫学仓颉编程语言开发:标识符与程序结构

HarmonyOS 鸿蒙Next中跟老卫学仓颉编程语言开发:标识符与程序结构 本节介绍仓颉编程语言的标识符和程序结构。

标识符

在仓颉编程语言中,开发者可以给一些程序元素命名,这些名字也被称为“标识符”,标识符分为普通标识符和原始标识符两类,它们分别遵从不同的命名规则。

普通标识符不能和仓颉关键字相同,可以取自以下两类字符序列:

由“XID_Start”字符开头,后接任意长度的“XID_Continue”字符 由一个“_”开头,后接至少一个“XID_Continue”字符 其中,“XID_Start”、“XID_Continue”定义见Unicode标准。仓颉使用Unicode标准15.0.0(https://www.unicode.org/reports/tr31/tr31-37.html)。

仓颉把所有标识符识别为Normalization Form C (NFC) 后的形式。两个标识符如果在NFC后相等,则认为是相同的标识符。

例如,以下每行字符串都是合法的普通标识符:

abc
_abc
abc_
a1b2c3
a_b_c
a1_b2_c3
仓颉
__こんにちは

以下每行字符串都是不合法的普通标识符:

ab&c  // 使用了非法字符 “&”
3abc  // 数字不能出现在头部
while // 不能使用仓颉关键字

原始标识符是在普通标识符或仓颉关键字的外面加上一对反引号,主要用于将仓颉关键字作为标识符的场景。

例如,以下每行字符串都是合法的原始标识符:

`abc`
`_abc`
`a1b2c3`
`if`
`while`
`à֮̅̕b`

以下每行字符串,由于反引号内的部分是不合法的普通标识符,所以它们整体也是不合法的原始标识符:

`ab&c`
`3abc`

图片

程序结构

通常,我们都会在扩展名为.cj的文本文件中编写仓颉程序,这些程序和文件也被称为源代码和源文件,在程序开发的最后阶段,这些源代码将被编译为特定格式的二进制文件。

在仓颉程序的顶层作用域中,可以定义一系列的变量、函数和自定义类型(如struct、class、enum和interface等),其中的变量和函数分别被称为全局变量和全局函数。如果要将仓颉程序编译为可执行文件,则需要在顶层作用域中定义一个main函数作为程序入口,它可以有Array<String>类型的参数,也可以没有参数,它的返回值类型可以是整数类型或Unit类型。

:定义main函数时,不需要写func修饰符。此外,如果需要获取程序启动时的命令行参数,可以声明和使用Array<String>类型参数。

例如在以下程序中,我们在顶层作用域定义了全局变量g和全局函数b,还有自定义类型C、D和E,以及作为程序入口的main函数。

let g = 2022
func b() {}
struct C {}
class D {}
enum E { F | G }

main() {
    println(g)
}

在非顶层作用域中不能定义上述自定义类型,但可以定义变量和函数,称之为局部变量和局部函数。特别地,对于定义在自定义类型中的变量和函数,称之为成员变量和成员函数。

:enum和interface中仅支持定义成员函数,不支持定义成员变量。

例如在以下程序中,我们在顶层作用域定义了全局函数a和自定义类型A,在函数a中定义了局部变量b和局部函数c,在自定义类型A中定义了成员变量b和成员函数c。

func a() {
    let b = 2023
    func c() {
        println(b)
    }
    c()
}

class A {
    let b = 2024
    public func c() {
        println(b)
    }
}

main() {
    a()
    A().c()
}

运行以上程序,将输出:

2023
2024

本节示例可以在“program_structure_demo”应用下找到。

参考引用

图片


更多关于HarmonyOS 鸿蒙Next中跟老卫学仓颉编程语言开发:标识符与程序结构的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

支持支持

更多关于HarmonyOS 鸿蒙Next中跟老卫学仓颉编程语言开发:标识符与程序结构的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


多谢支持!,

鸿蒙Next的仓颉编程语言中,标识符用于命名变量、函数等,遵循特定命名规则。程序结构包括模块、函数定义及控制流语句,以构建应用逻辑。开发时需使用鸿蒙SDK和IDE工具进行编码与调试。

这篇教程对仓颉编程语言的标识符和程序结构讲解得非常清晰准确。作为HarmonyOS Next的官方编程语言,仓颉的这些基础规则对于编写正确、高效的代码至关重要。

关于标识符部分,教程准确指出了仓颉基于Unicode 15.0.0标准,并采用NFC规范化处理。这意味着开发者可以使用多种语言的字符作为标识符(如示例中的“仓颉”、“こんにちは”),同时保证了标识符比较的一致性。原始标识符(反引号包裹)的设计也很实用,解决了与关键字冲突的命名需求。

在程序结构方面,教程清晰地划分了不同作用域的规则:

  1. 顶层作用域(.cj文件)支持全局变量、函数及所有自定义类型定义
  2. main函数作为程序入口的特殊规则(无需func修饰符,参数可选)
  3. 局部作用域与成员定义的区分

示例代码很好地展示了这些概念的实际应用,特别是作用域嵌套和成员访问的演示。这种结构设计使得仓颉代码既保持了灵活性,又具有明确的组织规范。

对于正在学习HarmonyOS Next开发的开发者来说,掌握这些基础知识是后续理解更高级语言特性和框架API的前提。

回到顶部