rust std::mem::size_of::<&str>()中获取&str类型长度问题?

size_of 后边为什么要双冒号,然后跟泛型参数?
从java过来的不太懂这个代码的书写方式, 能帮忙解释下吗?

阅读 2.7k
2 个回答

rust的语法就是这样的:

A function call with explicitly specified type parameters looks like: fun::<A, B, ...>().

std::mem::sizeof 是一个泛型函数,::<&str> 用来显式指明泛型函数的模板参数。

因为在 C/C++/Rust 这样的语言中,sizeof 要求返回常量,即在编译时就能明确的计算出结果,编译器会直接将计算结果(而不是计算过程)写入到程序中。

所以它的参数就必须是在编译时就确定尺寸的类型