相关疑难解决方法(0)

Rust支持类似Ruby的字符串插值吗?

在Ruby中,我可以做到这一点.

aaa = "AAA"
bbb = "BBB #{aaa}"

puts(bbb)

> "BBB AAA"
Run Code Online (Sandbox Code Playgroud)

这种语法的重点是消除重复,并使其感觉像一个shell脚本 - 非常适合繁重的字符串操作.

Rust支持这个吗?或者有计划支持这个?或者有一些可以模仿的功能?

string-interpolation rust

22
推荐指数
3
解决办法
6248
查看次数

如何在Rust中连接静态字符串

我正在尝试连接静态字符串和字符串文字以构建另一个静态字符串.以下是我能想到的最好的,但它不起作用:

const DESCRIPTION: &'static str = "my program";
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
const VERSION_STRING: &'static str = concat!(DESCRIPTION, " v", VERSION);
Run Code Online (Sandbox Code Playgroud)

在Rust中有没有办法做到这一点,或者我必须一遍又一遍地写相同的文字?

rust

14
推荐指数
2
解决办法
3069
查看次数

在Rust中使用字符串文字更方便的连接

在每晚的Rust中,不再可能将字符串文字指定为带有"〜"字符的 String .

例如,在C++中,我使用用户定义的文字连接字符串文字,而不是std::string每次都提到的外壳:

inline std::string operator"" _s (const char* str, size_t size) {return std::string (str, size);}
foo ("Hello, "_s + "world!");
Run Code Online (Sandbox Code Playgroud)

在Rust中是否存在类似的功能,以使字符串文字连接不那么痛苦String::from_str ("Hello, ") + "world!"

rust

10
推荐指数
2
解决办法
7923
查看次数

如何添加字符串并打印它们?

我目前正在学习Rust(主要是从零开始),现在我想将两个字符串一起添加并打印出来.但这并不像其他语言那么容易.这是我到目前为止所做的(也经过测试print!):

fn sayHello(id: str, msg: str) {
    println!(id + msg);
}

fn main() {
    sayHello("[info]", "this is rust!");
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误有点奇怪.

error: expected a literal
 --> src/main.rs:2:14
  |
2 |     println!(id + msg);
  |              ^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题,这样生锈的[info]会被打印掉?

rust

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

为什么在没有Deref胁迫其中一个字符串的情况下,不能在Rust中连接两个字符串?

这样可行:

let hello = "Hello ".to_string();
let world = "world!";

let hello_world = hello + world;
Run Code Online (Sandbox Code Playgroud)

但这不是:

let hello = "Hello ".to_string();
let world = "world!".to_string();

let hello_world = hello + world;
Run Code Online (Sandbox Code Playgroud)

但这样做:

let hello = "Hello ".to_string();
let world = "world!".to_string();

let hello_world = hello + &world;
Run Code Online (Sandbox Code Playgroud)

那是因为String需要一个指向String第二个原始的指针String吗?如果是这样,为什么?

rust

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

Rust String concatenation

我本周开始使用Rust编程,我在理解Strings如何工作方面遇到了很多问题.

现在,我正在尝试制作一个简单的程序,打印附加订单的玩家列表(仅用于学习目的).

let res : String = pl.name.chars().enumerate().fold(String::new(),|res,(i,ch)| -> String {
    res+=format!("{} {}\n",i.to_string(),ch.to_string());
});

println!("{}", res);
Run Code Online (Sandbox Code Playgroud)

这是我的想法,我知道我可以使用for循环,但目标是了解不同的Iterator函数.

所以,我的问题是字符串连接不起作用.

   Compiling prueba2 v0.1.0 (file:///home/pancho111203/projects/prueba2)
src/main.rs:27:13: 27:16 error: binary assignment operation `+=` cannot be applied to types `collections::string::String` and `collections::string::String` [E0368]
src/main.rs:27             res+=format!("{} {}\n",i.to_string(),ch.to_string());
                           ^~~
error: aborting due to previous error
Could not compile `prueba2`.
Run Code Online (Sandbox Code Playgroud)

我尝试使用&str但是不可能从i和它创建它们ch.

string rust

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

如何将两个字符串字段与另一个字符串连接起来?

我不明白 Rust 如何处理字符串。我创建了一个带有两个字符串字段和一个方法的简单结构。此方法连接两个字段和参数中的字符串。我的代码:

fn main() {
    let obj = MyStruct {
        field_1: "first".to_string(),
        field_2: "second".to_string(),
    };

    let data = obj.get_data("myWord");
    println!("{}",data);
}

struct MyStruct {
    field_1: String,
    field_2: String,
}

impl MyStruct {
    fn get_data<'a>(&'a self, word: &'a str) -> &'a str {
        let sx = &self.field_1 + &self.field_2 + word;
        &* sx
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时出现错误:

src\main.rs:18:18: 18:31 error: binary operation `+` cannot be applied to type `&collections::string::String` [E0369]
src\main.rs:18         let sx = &self.field_1 + &self.field_2 + word;
                                ^~~~~~~~~~~~~
src\main.rs:19:10: …
Run Code Online (Sandbox Code Playgroud)

string struct string-concatenation rust

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

Rust 编译时的部分应用程序?

我有一个带有两个参数的函数(假设两个字符串):

fn foo(x: String, y: String) -> String {
    x + y
}
Run Code Online (Sandbox Code Playgroud)

我总是x在编译时知道,但y直到运行时我才知道。

我怎样才能编写这个以获得最大效率,而无需为每个函数复制粘贴x

compile-time rust

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

在 Rust 中,如何将一个字符串与换行符和另一个字符串连接起来?

我有两个变量,每个变量都包含一个字符串。我想用它们之间的换行符连接两者。我怎么做?

string rust

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

如何在 Rust 中处理一串数字?

我有一个输入:

let b = String::from("1 2 4 5 6");
Run Code Online (Sandbox Code Playgroud)

我的任务是将每个值的指数函数作为输出返回:

let output = "2.718281828459045 7.38905609893065 54.598150033144236 148.4131591025766 403.4287934927351";
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个任务。如何解析每个值并使用 exp 函数并发送结果字符串?

string parsing numbers exponential rust

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