所以我有這樣的:字符串連接錯誤:預期文字
struct User {
reference: String,
email: String,
firstname: String,
lastname: String
}
fn main() {
let user = User {
reference: "ref".to_string(),
email: "[email protected]".to_string(),
firstname: "John".to_string(),
lastname: "Doe".to_string()
};
concat!(&user.firstname.as_string(), " ", &user.lastname.as_string());
}
多數民衆贊成返回一個錯誤:
error: expected a literal
concat!(&user.firstname.as_string(), " ", &user.lastname.as_string());
^~~~~~~~~~~~~~~~~~~~~~~~~~
但我認爲.as_string()
已經使得文字,不是嗎?我也發現as_slice()
和as_str()
引用到處都是,它很混亂。哪一個?
UPDATE OK,我希望我沒有在這裏貼了整個事情,但我想我只是要做到這一點反正:
extern crate postgres;
use postgres::{Connection, SslMode};
struct User {
reference: String,
email: String,
firstname: String,
lastname: String
}
fn main() {
let conn = Connection::connect("postgres://postgres:[email protected]/mydb", &SslMode::None).unwrap();
let user = User {
reference: "ref".to_string(),
email: "[email protected]".to_string(),
firstname: "John".to_string(),
lastname: "Doe".to_string()
};
let query = "INSERT INTO foo (user_id, name) VALUES ((SELECT id FROM user WHERE email = $1), $2)";
conn.execute(query, &[&user.email, concat!(&user.firstname.as_slice(), " ", &user.lastname.as_slice())]).unwrap();
}
你究竟想在這裏完成什麼? –
@DanielFath更新了上下文代碼 – Caballero