元组是一种 ReScript 特有的数据结构,在 JavaScript 中不存在。它们是:
不可变的
有序的
在创建时固定大小
异构的(可以包含不同类型的值)
let ageAndName = (24, "Lil' ReScript") let my3dCoordinates = (20.0, 30.5, 100.0)
元组的类型也可以在类型标注中使用,元组类型看起来和元组值很像。
let ageAndName: (int, string) = (24, "Lil' ReScript") // a tuple type alias type coord3d = (float, float, float) let my3dCoordinates: coord3d = (20.0, 30.5, 100.0)
注意:没有大小为 1 的元组,你只需使用值本身。
要获取元组的特定成员,可以对元组进行解构:
let (_, y, _) = my3dCoordinates // now you've retrieved y
_ 意味着你要忽略元组中的指定成员。
_
元组无法通过修改来更新,你可以通过解构旧的元组来创建新的元组:
let coordinates1 = (10, 20, 30) let (c1x, _, _) = coordinates1 let coordinates2 = (c1x + 50, 20, 30)
你可以在方便的情况下使用元组,随意传递多个值。例如,返回多个值:
let getCenterCoordinates = () => { let x = doSomeOperationsHere() let y = doSomeMoreOperationsHere() (x, y) }
尽量局部地使用元组,对于那些长期存在并经常需要传递的数据结构,最好使用记录(record),它有命名的字段。