String
String
μ νμ ν λΉλκ³ κ°λ³ κΈΈμ΄μ νμ€ UTF-8 λ¬Έμμ΄ λ²νΌμ
λλ€:
fn main() { let mut s1 = String::new(); s1.push_str("μλ νμΈμ"); println!("s1: len = {}, μ©λ = {}", s1.len(), s1.capacity()); let mut s2 = String::with_capacity(s1.len() + 1); s2.push_str(&s1); s2.push('!'); println!("s2: len = {}, μ©λ = {}", s2.len(), s2.capacity()); let s3 = String::from("π¨π"); println!("s3: len = {}, λ¬Έμ μ = {}", s3.len(), s3.chars().count()); }
String
μ Deref<Target = str>
μ ꡬνν©λλ€. μ΄λ , String
κ°μ λν΄μλ str
μ λͺ¨λ λ©μλλ₯Ό νΈμΆ ν μ μλ€λ μλ―Έ μ
λλ€.
This slide should take about 10 minutes.
String::new
λ μλ‘μ΄ λΉ λ¬Έμμ΄μ λ°νν©λλ€.String::with_capacity
λ μλ‘ λ§λ€ λ¬Έμμ΄ λ²νΌμ λ£μ λ°μ΄ν° ν¬κΈ°λ₯Ό μκ³ μλ κ²½μ°μ μ¬μ©ν μ μμ΅λλ€.String::len
μString
μ λ°μ΄νΈ ν¬κΈ°λ₯Ό λ°νν©λλ€. (μ€μ λ¬Έμ κ°μμλ λ€λ₯Ό μ μμ΅λλ€.)String::chars
λ μ€μ λ¬Έμ(character)λ€μ λν μ΄ν°λ μ΄ν°λ₯Ό λ°νν©λλ€.char
λ‘ ννλλ λ¬Έμλ μ°λ¦¬κ° μ€μ λ‘ μΈμνκ³ μ¬μ©νλ λ¬Έμμλ λ€λ₯Ό μ μμ΅λλ€. μμ κ²°ν©μΌλ‘ λ¬Έμλ₯Ό νννλ κ²½μ°κ° μκΈ° λλ¬Έμ λλ€. μ΄μ λν΄μλ Grapheme Clusterλ₯Ό μ°Έκ³ νμΈμ.- μ¬λλ€μ΄ λ¬Έμμ΄μ΄λΌκ³ λ§ν λμλ
&str
μ΄κ±°λString
μΌ μ μμ΅λλ€. - μ΄λ€ νμ
μ΄
Deref<Target = T>
λ₯Ό ꡬννκ³ μμΌλ©΄, μ»΄νμΌλ¬λ μ¬λ¬λΆμ΄T
μ λ©μλλ€μ νΈμΆν μ μκ² λμμ€λλ€.Deref
νΈλ μμ κ΄ν΄μ μμ§ λ€λ£¨μ§ μμμΌλ―λ‘ μ΄ μμ μμλ μ΄κ²μΌλ‘ λ¬Έμμ μ¬μ΄λλ° κ΅¬μ‘°κ° λλΆλΆ μ€λͺ λ©λλ€.String
μDeref<Target = str>
μ ꡬννκ³ μκΈ° λλ¬ΈμString
μ λν΄μλstr
λ©μλλ€μ νΈμΆν μ μμ΅λλ€.- Write and compare
let s3 = s1.deref();
andlet s3 = &*s1;
.
String
μ λ°μ΄νΈ 벑ν°μ λνΌλ‘ ꡬνλμ΄ μμ΅λλ€. 벑ν°κ° μ§μνλ μ¬λ¬κ°μ§ μ°μ°λ€μString
λ μ§μν©λλ€. λ€λ§String
μ λͺκ°μ§ 보μ₯ λ΄μ©μ΄ λ μμ΅λλ€.String
μ μΈλ±μ€λ‘ μ κ·Όνλ λ°©λ²λ€μ λΉκ΅ν΄λ³΄μΈμ:s3.chars().nth(i).unwrap()
λ₯Ό μ΄μ©νμ¬ ν λ¬Έμλ₯Ό μ ννλ κ²½μ°,i
κ°μ΄ λ²μλ₯Ό λ²μ΄λ λ, λ²μ΄λμ§ μμ λ λμμ μ€λͺ νμΈμ.s3[0..4]
λ₯Ό μ΄μ©ν΄μ λ¬Έμμ΄μ μΌλΆλ₯Ό μ ννλλ°, μ¬λΌμ΄μ€κ° μ λμ½λ λ¬Έμμ΄ κ²½κ³μ λ± λ§μ§ μμ κ²½μ° μ΄λ»κ² λλμ§ μ€λͺ νμΈμ.
- Many types can be converted to a string with the
to_string
method. This trait is automatically implemented for all types that implementDisplay
, so anything that can be formatted can also be converted to a string.