这是我去年遇到的一个做法,当时没细探究,今天突然想起。
问题是这样的,结构体A需要包含一个内容content,类型是复合的T,例如T为Vec<HashSet<T1>>。
结构体A需要被实例化多次,例如a1 a2 an等。每个实例至少需要多线程安全,至少会被线程传递。
我没记清实例还需要满足什么trait。但是记得开始把结构体从A写成B的写法&T不满足某种trait,导致错误。写成A的切片以后,虽然切片里只包含1个T,但是却成功绕过了接口类型检查。
所以想探究下,从&T改到&[T]的写法,到底绕过了什么检查?付出了什么代价?
【 在 RunningOn 的大作中提到: 】
: 啥意思?
: 一个是数组切片,一个是引用。
: 对应到C++,一个是指向对象数组的指针,一个是指向对象的指针。只是C++里指向对象的指针也可以当成对象数组指针用[下标]来访问,但rust不行。
: ...................
--
FROM 221.218.142.*