TypeScript里面的有些概念,是C++开发人员无法直接理解的。
TypeScript之object
在TFJS里面,每一个object都通过大括号初始化,然后用作WeakMap的关键字:
export type DataId = object;
const dataId = {}; //DataId类型
初始化之后,这个dataId就不再更改了。原因是,虽然初始化的过程都是一样的大括号,但是,对应的却是不同的对象。
TFJS的具体例子如下:
const dataId = {};
譬如下面的例子:
write(values: backend_util.BackendValues, shape: number[], dtype: DataType):
DataId {
const dataId = {};
this.tensorMap.set(dataId, {
dtype,
values,
bufferInfo: {byteSize, usage: DEFAULT_GPUBUFFER_USAGE}
});
return dataId;
}
下面的代码,比较了使用大括号初始化的两个object,他们是不同的:
var wm1 = new Map()
const o1 = {};
const o2 = {};
wm1.set(o1, 37);
wm1.set(o2, 'abcde');
console.log("wm1.get(o1)=&#