【华为鸿蒙开发技术】仓颉编程语言基础数据类型指南:布尔、字符与字符串

举报
柠檬味拥抱 发表于 2024/07/22 13:53:40 2024/07/22
【摘要】 仓颉编程语言是一种面向全场景应用开发的通用编程语言,旨在兼顾开发效率和运行性能,并提供良好的编程体验。本文将介绍仓颉编程语言的主要特点和使用示例,帮助开发者更好地理解和应用这门语言。 仓颉编程语言的主要特点 1. 语法简明高效仓颉编程语言提供了一系列简明高效的语法,旨在减少冗余书写、提升开发效率。例如:插值字符串:通过插值表达式直接在字符串中嵌入变量和表达式,避免了繁琐的字符串拼接。主构造函...

仓颉编程语言是一种面向全场景应用开发的通用编程语言,旨在兼顾开发效率和运行性能,并提供良好的编程体验。本文将介绍仓颉编程语言的主要特点和使用示例,帮助开发者更好地理解和应用这门语言。

仓颉编程语言的主要特点

1. 语法简明高效

仓颉编程语言提供了一系列简明高效的语法,旨在减少冗余书写、提升开发效率。例如:

  • 插值字符串:通过插值表达式直接在字符串中嵌入变量和表达式,避免了繁琐的字符串拼接。
  • 主构造函数:简化了类和对象的初始化过程。
  • Flow 表达式、match、if-let、while-let:提供更强大的条件和模式匹配能力。
  • 重导出:允许模块化代码的更灵活组织和复用。

2. 多范式编程

仓颉编程语言支持函数式、命令式和面向对象等多种编程范式。其特点包括:

  • 函数式编程:支持高阶函数、代数数据类型、模式匹配和泛型等特性。
  • 面向对象编程:支持封装、接口、继承和子类型多态,适合模块化开发。
  • 命令式编程:提供值类型和全局函数等特性,简洁高效。

开发者可以根据开发偏好或应用场景选择适合的编程范式,灵活应对各种编程需求。

3. 类型安全

仓颉编程语言是静态强类型语言,通过编译时类型检查尽早识别程序错误,降低运行时风险,便于代码维护。仓颉编译器提供了强大的类型推断能力,减少了类型标注工作,提高了开发效率。

4. 内存安全

仓颉编程语言支持自动内存管理,并在运行时进行数组下标越界检查、溢出检查等,确保内存安全,减少内存泄漏和未定义行为。

5. 高效并发

仓颉编程语言提供了用户态轻量化线程(原生协程)和简单易用的并发编程机制,保证高效的并发开发和运行性能。

6. 兼容语言生态

仓颉编程语言支持与 C 等主流编程语言的互操作,采用便捷的声明式编程范式,实现对其他语言库的高效复用和生态兼容。

7. 领域易扩展

仓颉编程语言提供基于词法宏的元编程能力,支持编译时变换代码,并提供尾随 lambda、属性、操作符重载和部分关键字可省略等特性,方便构建内嵌式领域专用语言(EDSL)。

8. 助力 UI 开发

仓颉编程语言基于元编程和尾随 lambda 等特性,支持搭建声明式 UI 开发框架,提升 UI 开发效率和体验。

9. 内置库功能丰富

仓颉编程语言提供了丰富的内置库,涵盖数据结构、常用算法、数学计算、正则匹配、系统交互、文件操作、网络通信、数据库访问、日志打印、解压缩、编解码、加解密和序列化等功能。

仓颉编程语言的基本类型

布尔类型

布尔类型使用 Bool 表示,用于表示逻辑中的真和假。布尔类型字面量只有 truefalse

let a: Bool = true
let b: Bool = false

布尔类型支持逻辑操作符(!&&||)、关系操作符(==!=)和部分复合赋值操作符(&&=||=)。

字符类型

字符类型使用 Rune 表示,可以表示 Unicode 字符集中的所有字符。

let a: Rune = r'a'
let b: Rune = r"b"

字符类型支持的操作符包括关系操作符(<><=>===!=)。

字符串类型

字符串类型使用 String 表示,用于表达文本数据。字符串字面量分为单行字符串字面量、多行字符串字面量和多行原始字符串字面量。

单行字符串字面量的内容定义在一对单引号或双引号之内:

let s1: String = ""
let s2 = 'Hello Cangjie Lang'
let s3 = "\"Hello Cangjie Lang\""
let s4 = 'Hello Cangjie Lang\n'

多行字符串字面量开头结尾需各存在三个双引号或单引号:

let s1: String = """
    """
let s2 = '''
    Hello,
    Cangjie Lang'''

多行原始字符串字面量以一个或多个井号和一个单引号或双引号开头,保持内容的原样:

let s1: String = #""#
let s2 = ##'\n'##
let s3 = ###"
    Hello,
    Cangjie
    Lang"###

字符串类型支持插值字符串,通过在字符串中嵌入变量和表达式来避免繁琐的字符串拼接:

main() {
    let fruit = "apples"
    let count = 10
    let s = "There are ${count * count} ${fruit}"
    println(s)

    let r = 2.4
    let area = "The area of a circle with radius ${r} is ${let PI = 3.141592; PI * r * r}"
    println(area)
}

字符串类型还支持关系操作符比较和 + 拼接:

main() {
    let s1 = "abc"
    var s2 = "ABC"
    let r1 = s1 == s2
    println("The result of 'abc' == 'ABC' is: ${r1}")
    let r2 = s1 + s2
    println("The result of 'abc' + 'ABC' is: ${r2}")
}

结语

仓颉编程语言凭借其简明高效的语法、多范式编程、类型安全、内存安全、高效并发和丰富的内置库,为开发者提供了强大的工具和良好的编程体验。无论是用于高性能应用开发,还是构建复杂的 UI 界面,仓颉编程语言都能胜任。希望本文能帮助您更好地理解和应用仓颉编程语言,提升开发效率和代码质量。

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。