我正在创建很多结构,Option<Vec<T>>而不是Vec<T>在不需要时不分配内存.我抬头一看这个答案对两者的大小Vec及Option<Vec>>两者都是相同的.
所以我的问题是这个.我应该使用Vec<T>并检查其.len()效果是否相同或继续使用Option?或者他们是等同的?
最初我也是一名JavaScript开发人员.并且偏执过分配或不分配.
DK.*_*DK. 13
空Vec不会分配,因为它没有任何内容可供存储.
由于编译器使用的优化,两者的大小相同,但这与类型的含义无关.即使有这样的优化,一个空的Vec和None不一样的东西.一个表示存在空Vec,另一个表示Vec根本没有.根据您的确切做法,区别可能很重要.