我似乎无法做到这一点.我一直收到一个错误,说'len'在类型'&[str]'上不存在.
fn testLength(arr: &[String]) {
if arr.len >= 10 {
// Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我还是Rust的新手,我知道这是一个指向原始字符串的指针.为什么我不能在运行时获取底层字符串的长度?谷歌搜索"生锈中的绳子长度"和"生锈中的阵列长度"这些东西绝对没有让我感到满意.
我正在尝试创建一个可以初始化为某种类型的通用结构T.它看起来像这样:
pub struct MyStruct<T> {
test_field: Option<T>,
name: String,
age: i32,
}
impl MyStruct<T> {
fn new(new_age: i32, new_name: String) -> MyStruct<T> {
MyStruct<T> {
test_field: None,
age: new_age,
name: new_name,
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我明白了
链式比较运算符需要括号
和一堆其他的东西.
我正在为一个API编写Rust绑定,它接受两个API密钥.有很多方法可以实现这一目标.我特别不想给用户带来负担
myapi::requestThing(firstApiKey, SecondApiKey,...)
Run Code Online (Sandbox Code Playgroud)
我想让用户只传入一次API密钥并记住它.问题是我试图在功能上这样做,并将所有内容塞进结构中似乎也不是最好的方法.
我无法编译这个简单的Haskell函数.它来自99个Haskell问题,应该实现last.我写了以下版本:
myLast :: [a] -> a
myLast [] = []
myLast (x:[]) = x
myLast (x:xs) = myLast(xs)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将其加载到GHCi中,我会收到错误:
Couldn't match expected type `a' with actual type `[t0]'
`a' is a rigid type variable bound by
the type signature for myLast :: [a] -> a at problem1.hs:1:11
Relevant bindings include
myLast :: [a] -> a (bound at problem1.hs:3:1)
In the expression: []
In an equation for `myLast': myLast [] = []
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)
这告诉了我
myLast[] = …Run Code Online (Sandbox Code Playgroud)