CQUPTYHM 发表于 2020-04-30 21:24
Tags:array,slice,len
网上说slice是一个胖指针,记录了其中指向的数组的长度,并且是硬编码的。 这个硬编码的意思是在编译器就slice就知道了数组的长度还是别的意思? 求指点。
对以下内容的回复:
https://stackoverflow.com/questions/61535226/how-does-rust-determine-the-length-of-a-slice-when-unsizing-from-an-array 这个回答解决了我的问题
这个我明白,我有疑惑的是 slice里的len部分是如何知道的, Vec里面是存了一个 len 在转成slice时可以获取到,但是数组里面并没有len这个字段啊 对以下内容的回复:
参见 https://cheats.rs/#references-pointers-ui,胖指针的大小比普通指针大,slice 的长度就是放在这个额外部分里的。
评论区
写评论对以下内容的回复:
https://stackoverflow.com/questions/61535226/how-does-rust-determine-the-length-of-a-slice-when-unsizing-from-an-array 这个回答解决了我的问题
这个我明白,我有疑惑的是 slice里的len部分是如何知道的, Vec里面是存了一个 len 在转成slice时可以获取到,但是数组里面并没有len这个字段啊 对以下内容的回复:
参见 https://cheats.rs/#references-pointers-ui,胖指针的大小比普通指针大,slice 的长度就是放在这个额外部分里的。