小编Ste*_*eve的帖子

获取作为参数传入的数组的大小

我似乎无法做到这一点.我一直收到一个错误,说'len'在类型'&[str]'上不存在.

fn testLength(arr: &[String]) {
    if arr.len >= 10 {
        // Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我还是Rust的新手,我知道这是一个指向原始字符串的指针.为什么我不能在运行时获取底层字符串的长度?谷歌搜索"生锈中的绳子长度"和"生锈中的阵列长度"这些东西绝对没有让我感到满意.

arrays slice rust

19
推荐指数
1
解决办法
1万
查看次数

创建新通用结构的正确方法是什么?

我正在尝试创建一个可以初始化为某种类型的通用结构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)

但这似乎不起作用.我明白了

链式比较运算符需要括号

和一堆其他的东西.

generics struct rust

3
推荐指数
1
解决办法
1632
查看次数

在Rust库中处理API密钥的最惯用的方法是什么?

我正在为一个API编写Rust绑定,它接受两个API密钥.有很多方法可以实现这一目标.我特别不想给用户带来负担

myapi::requestThing(firstApiKey, SecondApiKey,...)
Run Code Online (Sandbox Code Playgroud)

我想让用户只传入一次API密钥并记住它.问题是我试图在功能上这样做,并将所有内容塞进结构中似乎也不是最好的方法.

binding idiomatic rust

2
推荐指数
1
解决办法
73
查看次数

如何处理我自己的`last`版本中的空列表?

我无法编译这个简单的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)

haskell list

1
推荐指数
1
解决办法
204
查看次数

标签 统计

rust ×3

arrays ×1

binding ×1

generics ×1

haskell ×1

idiomatic ×1

list ×1

slice ×1

struct ×1