获取作为参数传入的数组的大小
Getting size of an array passed in as an argument
我似乎无法完成这项工作。我不断收到一条错误消息,提示 'len' 在类型“&[String]”上不存在。
fn testLength(arr: &[String]) {
if arr.len >= 10 {
// Do stuff
}
}
我对 Rust 还是很陌生,我知道这是指向某处原始字符串的指针。为什么我不能在运行时获取底层字符串的长度?谷歌搜索 "length of string in rust" 和 "length of array in rust" 之类的东西让我完全无所适从。
当然可以,只是len
不是字段,是方法:
fn test_length(arr: &[String]){
if arr.len() >= 10 {
// Do stuff
}
}
如果你刚开始学习 Rust,你应该通读 official book - 你也会发现为什么 &[str]
没有意义(简而言之,str
是未确定大小的类型,而且你不能制作它的数组;相反,&str
应该用于借用的字符串,String
用于拥有的字符串;很可能你在某个地方有一个 Vec<String>
,你可以很容易地得到&[String]
出来了)。
我还要补充一点,如果您想将字符串或字符串数组传递给函数,则不清楚。如果它是一个字符串,那么你应该写
fn test_length(arr: &str) {
if arr.len() >= 10 {
// Do stuff
}
}
len()
在字符串上,但是,returns 可能不是您需要的字节长度(以字节为单位的长度!= 通常 "characters" 中的长度,无论定义如何你使用的"character",因为字符串在 Rust 中是 UTF-8,而 UTF-8 是一种可变宽度编码)。
请注意,我还将 testLength
更改为 test_length
,因为 snake_case 是 Rust 程序公认的约定。
我似乎无法完成这项工作。我不断收到一条错误消息,提示 'len' 在类型“&[String]”上不存在。
fn testLength(arr: &[String]) {
if arr.len >= 10 {
// Do stuff
}
}
我对 Rust 还是很陌生,我知道这是指向某处原始字符串的指针。为什么我不能在运行时获取底层字符串的长度?谷歌搜索 "length of string in rust" 和 "length of array in rust" 之类的东西让我完全无所适从。
当然可以,只是len
不是字段,是方法:
fn test_length(arr: &[String]){
if arr.len() >= 10 {
// Do stuff
}
}
如果你刚开始学习 Rust,你应该通读 official book - 你也会发现为什么 &[str]
没有意义(简而言之,str
是未确定大小的类型,而且你不能制作它的数组;相反,&str
应该用于借用的字符串,String
用于拥有的字符串;很可能你在某个地方有一个 Vec<String>
,你可以很容易地得到&[String]
出来了)。
我还要补充一点,如果您想将字符串或字符串数组传递给函数,则不清楚。如果它是一个字符串,那么你应该写
fn test_length(arr: &str) {
if arr.len() >= 10 {
// Do stuff
}
}
len()
在字符串上,但是,returns 可能不是您需要的字节长度(以字节为单位的长度!= 通常 "characters" 中的长度,无论定义如何你使用的"character",因为字符串在 Rust 中是 UTF-8,而 UTF-8 是一种可变宽度编码)。
请注意,我还将 testLength
更改为 test_length
,因为 snake_case 是 Rust 程序公认的约定。