相关疑难解决方法(0)

如何将String转换为&'static str

如何将a String转换为&str?更具体地说,我想将它转换为str带有staticlifetime(&'static str)的a.

rust

69
推荐指数
4
解决办法
5万
查看次数

将str转换为&[u8]

这看起来微不足道,但我找不到办法.

例如,

fn f(s: &[u8]) {}

pub fn main() {
    let x = "a";
    f(x)
}
Run Code Online (Sandbox Code Playgroud)

无法编译:

error: mismatched types:
 expected `&[u8]`,
    found `&str`
(expected slice,
    found str) [E0308]
Run Code Online (Sandbox Code Playgroud)

但是,文件指出:

strs的实际表示具有与切片的直接映射:&str与&[u8]相同.

string slice rust

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

如何直接创建String?

.to_string()当我需要一个字符串时,有什么方法可以避免调用吗?例如:

fn func1(aaa: String) -> ....
Run Code Online (Sandbox Code Playgroud)

而不是

func1("fdsfdsfd".to_string())
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

func1(s"fdsfdsfd")
Run Code Online (Sandbox Code Playgroud)

rust

10
推荐指数
3
解决办法
709
查看次数

如何在单个rust函数中接受str,String和&String

我想编写一个函数,该函数接受“ str”,“ String”和借用的“&String”。
我编写了以下2个函数:

fn accept_str_and_ref_string(value: &str)
{
    println!("value: {}", value);
}

fn accept_str_and_string<S: Into<String>>(value: S)
{
    let string_value: String = value.into();
    println!("string_value: {}", string_value);
}

fn main() {
    let str_foo = "foo";
    let string_foo = String::from("foo");

    accept_str_and_ref_string(str_foo);
    accept_str_and_ref_string(&string_foo);

    accept_str_and_string(str_foo);
    accept_str_and_string(string_foo);
}
Run Code Online (Sandbox Code Playgroud)

但我想要1功能,所以我可以做到这一点:

accept_all_strings(str_foo);
accept_all_strings(&string_foo);
accept_all_strings(string_foo);
Run Code Online (Sandbox Code Playgroud)

这可能吗?

rust borrowing

5
推荐指数
2
解决办法
340
查看次数

标签 统计

rust ×4

borrowing ×1

slice ×1

string ×1