loading

16.新原始数据类型Record Tuple

# 写法

// Records
const myRecord = #{
 name: '01',
  age: 23
}

// Tuple
const myTuple = #['1', '2', '3']

1
2
3
4
5
6
7
8
9
  • Record 和 Tuple 都只支持基本数据类型或 Record/Tuple 类型
  • Record 对象的键值只能是 string 类型,这一特性和 Object 保持一致,
  • 注意它的使用只不过在 Object 或者 Array 前面加了个 #(注意不要有空格) 就自动识别成 Record 或 Tuple 了,在数据类型变量前面加一个能不能行呢,比如:
let iObj = {name:'sam'}
const rObj = #iObj // SyntaxError: unknown operate
1
2

直接报错

# 只读不能直接改

const myRecord = #{
 name: '01'
}

const myTuple = #['1', '2']

myRecord['age'] = 23  // error
myTuple.push('3')  // error

1
2
3
4
5
6
7
8
9

# 可以用 === 判断

const record1 = #{ name: '01' }
const record2 = #{ name: '01' }
const recordIsSame = record1 === record2   // true

const tuple1 = #[1]
const tuple2 = #[1]
const tupleIsSame = tuple1 === tuple2   // true
1
2
3
4
5
6
7

键值对的排序不影响判断

let obj1 = #{name:'sam',age:24}
let obj2 = #{age:24, name:'sam'}
console.log(obj1 === obj2) // true
1
2
3

# 支持的方法

扩展运算符,数组支持不可变方法,包括toSorted,toSpliced,toReversed, slice, with

const myTuple = #[1, 2, 3];
const myRecord = #{ name: '01', age: 23 };

const newRecord = #{ ...myRecord, money: 0 } // #{ name: '01', age: 23, money: 0 }
const newTuple = #[ ...myTuple, 4, 5];   // #[1, 2, 3, 4, 5]
1
2
3
4
5
最近更新
01
2023/07/03 00:00:00
02
2023/04/22 00:00:00
03
2023/02/16 00:00:00