Saya tidak dapat mengkompilasi kode yang mengubah tipe dari integer menjadi string. Saya menjalankan contoh dari tutorial Rust for Rubyists yang memiliki berbagai jenis konversi seperti:
"Fizz".to_str()
dan num.to_str()
(dimana num
adalah integer).
Saya pikir sebagian besar (jika tidak semua) to_str()
panggilan fungsi ini sudah tidak digunakan lagi. Apa cara saat ini untuk mengubah integer menjadi string?
Kesalahan yang saya dapatkan adalah:
error: type `&'static str` does not implement any method in scope named `to_str`
error: type `int` does not implement any method in scope named `to_str`
string
int
type-conversion
rust
pengguna3358302
sumber
sumber
to_string()
metode tetapi yang mengembalikanString
dan bukan string literal.to_str()
itu nilai pengembalian yang berbeda, saya akan menggunakanto_string()
&'static str
, yaitu, potongan string dengan masa pakai statis, yang tidak mungkin diperoleh menggunakan data yang dibuat secara dinamis. Anda hanya dapat membuatnya menggunakan literal string.to_str
membingungkan saya (seperti yang Anda katakan, mereka menamainya untuk kejelasan) mengira itu mengembalikan potongan string, bukanString
objek.Jawaban:
Gunakan
to_string()
( menjalankan contoh di sini ):let x: u32 = 10; let s: String = x.to_string(); println!("{}", s);
Kamu benar;
to_str()
diubah namanya menjadito_string()
sebelum Rust 1.0 dirilis untuk konsistensi karena string yang dialokasikan sekarang dipanggilString
.Jika Anda perlu meneruskan potongan string di suatu tempat, Anda perlu mendapatkan
&str
referensi dariString
. Ini dapat dilakukan dengan menggunakan&
dan pemaksaan deref:let ss: &str = &s; // specifying type is necessary for deref coercion to fire let ss = &s[..]; // alternatively, use slicing syntax
Tutorial yang Anda tautkan tampaknya sudah usang. Jika Anda tertarik dengan string di Rust, Anda dapat melihat bab string di The Rust Programming Language .
sumber