fn main() {
let s: &str = "x";
println!("1. {:?}", s); // "x"
println!("1. {:p}\n", &s); // 0x7ffd82dd8b70
// вариант 2.1 не даёт пересоздать:
// let s: &str = (s.to_string() + "y" + "z").as_str();
//
// вариант 2.2 даёт пересоздать:
let s: &str = &(s.to_string() + "y" + "z");
//
println!("2. {:?}", s); // "xyz"
println!("2. {:p}", &s); // 0x7ffd82dd8c28
}
В примерах 2.1 и 2.2 ты дропаешь этот String
важна скорость чего?
// блок A
let mut u02: Vec<String> = vec![];
for c in u01_str.chars() {
u02.push(c.to_string());
}
println!("3. u02 = {:?}", &u02); // [";", "\r", "\n", " ", "/", "*"]
// блок B
let mut u03: Vec<&str> = vec![];
for c in u01_str.chars() {
u03.push(c.to_string().as_str());
}
println!("4. u03 = {:?}", &u03); // чтобы получить: [";", "\r", "\n", " ", "/", "*"]
Vec<String> = vec![]
Vec<&str> = vec![]
127.0.0.1:3000/info
has been blocked by CORS policyрешена.
теперь ожидаются данные, вроде таких {"username": "123"}
Access to XMLHttpRequest at 'localhost:3000/info' from origin '127.0.0.1:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
POST localhost:3000/info net::ERR_FAILED
xhr.setRequestHeader('Content-Type', 'application/json'); // 'application/json' 'application/x-www-form-urlencoded'
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.setRequestHeader('Access-Control-Allow-Methods', 'GET, OPTIONS, POST');
xhr.setRequestHeader('Access-Control-Allow-Headers', 'Content-Type');
xhr.setRequestHeader('X-CSRFToken', csrftoken); // отправляет: в заголовках вижу, например: X-CSRFToken
678
1. указатель на кучу: 0x56149d7a69b0
2. len = 3
3. cap =3
это лежит в стеке по адресу ссылки: 0x7ffc7b7e8068
Так?
Например, образно для Stack:
0x7ffc7b7e8068 - 0x56149d7a69b0
0x7ffc7b7e8069 - 3
0x7ffc7b7e8070 - 3
Например, для Heap:
0x56149d7a69b0 - a
0x56149d7a69b1 - b
0x56149d7a69b2 - c
Вместо символов - числа u8.