首页 > 其他分享 >鸿蒙原生应用元服务开发-仓颉基础数据类型元组类型

鸿蒙原生应用元服务开发-仓颉基础数据类型元组类型

时间:2024-09-12 10:51:46浏览次数:10  
标签:字面 鸿蒙 数据类型 元组 Int64 类型 表达式 String

元组(Tuple)可以将多个不同的类型组合在一起,成为一个新的类型。元组类型使用 (T1, T2, …, TN) 表示,其中 T1 到 TN 可以是任意类型,不同类型间使用逗号(,)连接。元组至少是二元,例如,(Int64, Float64) 表示一个二元组类型,(Int64, Float64, String) 表示一个三元组类型。
元组的长度是固定的,即一旦定义了一个元组类型的实例,它的长度不能再被更改。
元组类型是不可变类型,即一旦定义了一个元组类型的实例,它的内容不能再被更新。例如

var tuple = (true, false)
tuple[0] = false // Error, 'tuple element' can not be assigned

元组类型的字面量
元组类型的字面量使用 (e1, e2, …, eN) 表示,其中 e1 到 eN 是表达式,多个表达式之间使用逗号分隔。下面的例子中,分别定义了一个 (Int64, Float64) 类型的变量 x,以及一个 (Int64, Float64, String) 类型的变量 y,并且使用元组类型的字面量为它们定义了初值:

let x: (Int64, Float64) = (3, 3.141592)
let y: (Int64, Float64, String) = (3, 3.141592, "PI")

元组支持通过 t[index] 的方式访问某个具体位置的元素,其中 t 是一个元组,index 是下标,并且 index 只能是从 0 开始且小于元组元素个数的整数类型字面量,否则,编译报错。下面的例子中,使用 pi[0] 和 pi[1] 可以分别访问二元组 pi 的第一个元素和第二个元素。

main() {
    var pi = (3.14, "PI")
    println(pi[0])
    println(pi[1])
}

编译并执行上述代码,输出结果为:
3.140000
PI
在赋值表达式中,可使用元组字面量对表达式的右值进行解构,这要求赋值表达式等号左边必须是一个元组字面量,这个元组字面量里面的元素必须都是左值(左值即出现在赋值操作符左边的,可保存值的表达式,具体参见各章节对赋值操作的描述)或者一个元组字面量,当元组字面量中出现 _ 时,表示忽略等号右侧 tuple 对应位置处的求值结果(意味着这个位置处的类型检查总是可以通过的),等号右边的表达式也必须是 tuple 类型,右边 tuple 每个元素的类型必须是对应位置左值类型的子类型。注意,复合赋值不支持这种解构方式。求值顺序上先计算等号右边表达式的值,再对左值部分从左往右逐个赋值,例如:

var a: Int64
var b: String
var c: Unit
var f = { => ((1, "abc"), ())}
((a, b), c) = f() // value of a is 1, value of b is "abc", value of c is '()'
((a, b), _) = ((2, "def"), 3.0) // value of a is 2, value of b is "def", 3.0 is ignored

元组类型的类型参数
可以为元组类型标记显式的类型参数名,下面例子中的 name 和 price 就是 类型参数名。

func getFruitPrice (): (name: String, price: Int64) {
    return ("banana", 10)

对于一个元组类型,只允许统一写类型参数名,或者统一不写类型参数名,不允许交替存在。

let c: (name: String, Int64) = ("banana", 5)   // Error

资料来源:HarmonyOS Developer 官方网站

标签:字面,鸿蒙,数据类型,元组,Int64,类型,表达式,String
From: https://blog.51cto.com/u_14946066/11990076

相关文章

  • 鸿蒙HarmonyOS Next应用开发实战学习路线
    ✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向)......
  • 鸿蒙HarmonyOS装饰器详解
    ✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向)......
  • Scala的数据类型与运算的应用
    在Scala中,数据类型和运算的应用非常广泛,它们是构建程序的基础。以下是关于这些内容的详细介绍: 基本数据类型:Scala提供了八种基本数据类型,包括Byte、Char、Short、Int、Long、Float、Double和Boolean。这些类型涵盖了数值、字符、布尔值等不同的数据类型。例如,使用vali=1......
  • 一小时拿下鸿蒙应用开发者高级证书!
    鸿蒙系统,作为华为倾力打造的自主创新操作系统,其市场版图正以前所未有的速度扩张,影响力与日俱增。获得鸿蒙认证证书,标志着您已深谙此尖端技术的精髓,这无疑将成为您职场竞争中的一大亮点,让您在众多求职者中熠熠生辉,成为各大企业竞相追逐的宝贵人才。一小时刷完题库,就可以拿到......
  • 京东鸿蒙上线前瞻——使用 Taro 打造高性能原生应用
    背景2024年1月,京东正式启动鸿蒙原生应用开发,基于HarmonyOSNEXT的全场景、原生智能、原生安全等优势特性,为消费者打造更流畅、更智能、更安全的购物体验。同年6月,京东鸿蒙原生应用尝鲜版上架华为应用市场,计划9月完成正式版的上架。早在2020年,京东与华为就签署了战略......
  • 京东鸿蒙上线前瞻——使用 Taro 打造高性能原生应用
    背景2024年1月,京东正式启动鸿蒙原生应用开发,基于HarmonyOSNEXT的全场景、原生智能、原生安全等优势特性,为消费者打造更流畅、更智能、更安全的购物体验。同年6月,京东鸿蒙原生应用尝鲜版上架华为应用市场,计划9月完成正式版的上架。早在2020年,京东与华为就签署了战略合作......
  • 鸿蒙里面处理异步函数的方法
    1.使用then()方法是用于处理异步操作成功后的结果,并且可以链式调用以实现多个异步操作的顺序执行.then()处理初始Promise的结果,然后返回一个新的值,这个新值被传递给下一个.then(),以此类推错误处理:如果在.then()中的函数抛出错误,这个错误会被传递给下一个.then()的on......
  • 22级五年制C语言入门教程-(3)基本数据类型
    1.数据类型在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。C语言数据类型可以分为四种:1.基本类型:它们是算术类型,包括两种类型:整数类型和浮点类型。2.枚举类型:它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。3.void类型:类型......
  • 元组和字符串
    元组(增删查)元组在包含内容上相当于不可变的列表不可对元组内的序列修改,不可以通过索引下标的方式进行修改可进行的操作有:定义,ryhme=()通过下表索引ryhme[0]=(第一位),ryhme[-1]=(最后一位),ryhme[:3]=前3位切片,ryhme[:]=全部,ryhme[::2]=间隔2索引全部内容,ryhme[::-1]=倒序......
  • python基本数据类型
    python基本数据类型标准数据类型Python3中常见的数据类型有:Number(数字)String(字符串)bool(布尔类型)List(列表)Tuple(元组)Set(集合)Dictionary(字典)Python3的六个标准数据类型中:不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3个):List(列表)、Dictionary(字典)、S......