相关疑难解决方法(0)

Rust的`String`和`str`之间有什么区别?

为什么Rust有StringstrString和之间有什么区别str?什么时候使用String而不是str反之亦然?其中一个被弃用了吗?

string rust

341
推荐指数
13
解决办法
4万
查看次数

如何直接创建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
查看次数

String::from("") & "".to_string() 在 Rust 中有何不同?

Rust中的String::from("")&"".to_string()有何不同?

在这两种情况下,堆栈和堆分配有什么区别吗?

rust

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

文字和非文字有什么区别,除了非文字进入堆的事实?

我对文字和非文字之间的区别感到困惑(那些在堆上的,我不知道它们被称为什么).例如,String类型为例:

我们已经看过字符串文字,其中字符串值被硬编码到我们的程序中.字符串文字很方便,但它们并不总是适合您想要使用文本的每种情况.一个原因是它们是不可改变的....

我不明白上面的内容,因为我们已经看到了这样一个例子:

let mut a = "a"; // this is String literal here, so sitting on the stack
a = "b";
println!("a is being changed to...{}", a); // this is the same String literal sitting on the stack?
Run Code Online (Sandbox Code Playgroud)

显然,文字在Rust中是可变的.两者之间有什么区别,除了文字进入堆栈这一事实,而非文字进入堆?

我试图理解为什么我不应该在我的代码中使用可变文字,考虑到堆栈比堆快.

// a is mutable literal
let mut a = "a";
a = "b";
// b is mutable 'non-literal'
let mut b = String::from("a");
b = String::from("b");
Run Code Online (Sandbox Code Playgroud)

types memory-management rust

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

标签 统计

rust ×4

memory-management ×1

string ×1

types ×1