์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Database
- ์ค๋ผํดDB
- ๋ฌ์คํธ ์์
- ๋ฌ์คํธ
- ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ
- java
- ํ์ด์ฌ
- Operating System
- ๋ฐฑ์ค ๋ฌ์คํธ
- ์ค๋ผํด
- ubuntu
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ํ์ด์ฌ ์ฒผ๋ฆฐ์ง
- ์๋ฐ
- Rust
- Python challenge
- Reversing
- data communication
- ์๋ฐ ๊ธฐ์ด
- ์๊ณ ๋ฆฌ์ฆ
- ์ด์์ฒด์
- ๋ฌ์คํธ ํ๋ก๊ทธ๋๋ฐ ๊ณต์ ๊ฐ์ด๋
- ๋ฐ์ดํฐ ํต์
- OS
- ์ฐ๋ถํฌ
- ์๋ฐ ๊ฐ๋
- C
- ํ์ด์ฌ ์ฑ๋ฆฐ์ง
- ๋ฐฑ์ค
- Python
Archives
- Today
- Total
IT’s Portfolio
[Rust] String Type (String, str) ๋ณธ๋ฌธ
728x90
๋ฐ์ํ
๐ป Rust String
- Rust์ String์ ์ปฌ๋ ์
์ ํฌํจ๋จ
- String์ ๋ฐ์ดํธ์ ์ปฌ๋ ์ ๋ฐ ์ด ๋ฐ์ดํธ๋ค์ ํ ์คํธ๋ก ํํํ ๋ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ฉ์๋๋ค๋ก ๊ตฌํ๋์ด ์๊ธฐ ๋๋ฌธ
- Rust์ String ํ์
String
str
๐ค String
๊ฐ๋
std
lib ์ ์ํด ์ ๊ณต๋๋String
ํ์String
์ ํ์ฅ ๊ฐ๋ฅํ 8๋นํธ ๋ถํธ ์๋ ๋ฐฐ์ด์ธVec<char>
๋ฅผ ํฌํจํ๋ ๊ตฌ์กฐ์ฒด- growable, mutable, ownable, Encode with UTF-8, Not null terminated
String
์str
๊ณผ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ ์์ ๊ถ ๋ณด์- ๋๋ฌธ์
String
๊ฐ์ ๋ณ์์ ํ ๋นํ ๋&
๋๋ ์ฐจ์ฉ ์ํ๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ํ์์ ์ด์ง ์์
- ๋๋ฌธ์
- ์ด๊ธฐํํ๋ ๋์
String
์ ํฌ๊ธฐ๋ ์ปดํ์ผ ํ์์ ์๋ ค์ง๊ฑฐ๋ ์๋ ค์ง์ง ์์ ์ ์์ง๋ง ๊ธธ์ด๊ฐ ํ๊ณ์ ๋๋ฌํ ๋๊น์ง ํ์ฅ ๊ฐ๋ฅ
๐ค str
๊ฐ๋
str
์ ๋ฌ์คํธ ํต์ฌ ์ธ์ด ๊ธฐ๋ฅ ๋ด์ ์กด์ฌํ๋ ์ ์ผํ String ํ์ :&[char]
์ฌ๋ผ์ด์ค- ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ์ ์ํ๋ ๊ธฐ๋ณธ ์ ํ
&str
์ ์ฐธ์กฐ์ ํํ- ๋ค๋ฅธ ์ด๋๊ฐ์ ์ ์ฅ๋ UTF-8๋ก ์ธ์ฝ๋ฉ๋ ์คํธ๋ง ๋ฐ์ดํฐ์ ์ฐธ์กฐ์
- ํ๋ก๊ทธ๋จ ๋ฐ์ด๋๋ฆฌ์ ์์นํ๋ ์คํธ๋ง ๋ฆฌํฐ๋ด๋ ์คํธ๋ง ์ฌ๋ผ์ด์ค๋ผ๊ณ ํ ์ ์์
๐ String slice
- ํญ๋ชฉ ์ํ์ค๋ฅผ ํฌํจํ๊ณ ๊ตฌ๋ฌธ์ผ๋ก ํ์๋๋ ๋ณด๊ธฐ
- ์์ ๊ถ์ด ์์ง๋ง ํญ๋ชฉ์ด ๋ํ๋๋ ์์ ์ฐธ์กฐ ๊ฐ๋ฅ
- ๊ฒฐ๊ณผ์ ์ผ๋ก, ์คํธ๋ง ์ฌ๋ผ์ด์ค๋ ๋ฌธ์์ด ์์ ์ํ์ค์ ๋ํ ์ฐธ์กฐ
- ํ์ฅ ๊ฐ๋ฅํ ๋ฐฐ์ด์ธ
String
์๋ ๊ฐ ๋ฌธ์์ ๋ํ ์์น ๋๋ ์ธ๋ฑ์ค๊ฐ ํฌํจ๋์ด ์์
๐ String literal
- ํ
์คํธ๋ฅผ ํฐ ๋ฐ์ดํ๋ก ๋ฌถ์ด ๊ตฌ์ฑ
- ์ฝ๊ธฐ ์ ์ฉ ๋ฉ๋ชจ๋ฆฌ์ ์คํ ํ์ผ์ ์ผ๋ถ๋ก ์ ์ฅ๋
"์ฌ์ ํ ๋น๋ ํ ์คํธ"
๋ฅผ ์ฐธ์กฐํ๋ ๋ฌธ์์ด ์กฐ๊ฐ- ์ฆ, RAM์ ์ํํธ์จ์ด์ ํจ๊ป ์ ๊ณต๋๋ฉฐ ์คํ ์บ์์ ์์กดํ์ง ์์
- ์ฝ๊ธฐ ์ ์ฉ ๋ฉ๋ชจ๋ฆฌ์ ์คํ ํ์ผ์ ์ผ๋ถ๋ก ์ ์ฅ๋
๐ค String
๊ณผ str
์ฐจ์ด์
String | str |
---|---|
mutable | immutable |
์ปดํ์ผ ์ ํฌ๊ธฐ ์ ์ ์์ | ์ปดํ์ผ ์ ํฌ๊ธฐ ์ ์ ์์ |
๋ฐ์ดํฐ ํ์ ์ ์ฅ | ๋ฐ์ดํฐ ํ๋ก๊ทธ๋จ ๋ฐ์ด๋๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ ์ฅ |
๋ณ์ ๊ฐ ํ ๋นํ๊ธฐ ์ํด ์ฌ์ฉํ๊ฑฐ๋ ์ฐธ์กฐํ ํ์ ์์ | ๋จ์ผ ๋ณ์ ํ ๋น ์ ์ฌ์ฉํ๊ฑฐ๋ ์ฐธ์กฐ |
๐ค Code
// ๋ณ์์ ํ์
์ ์ถ๋ ฅํ๋ ํจ์
fn print_type_of<T>(_: &T) {
println!("{}", std::any::type_name::<T>())
}
fn main() {
let test_string = String::from("test!!!");
print_type_of(&test_string); // alloc::string::String
println!("{}", test_string); // test!!!
let test_str = "test!!!";
print_type_of(&test_str); // &str
println!("{}", test_str); // test!!!
// ๋ฌธ์์ด ์ฌ๋ผ์ด์ฑ
let test_slice = &test_string[1..4];
print_type_of(&test_slice); // &str
println!("{}", test_slice); // est
}
728x90
๋ฐ์ํ
'Development Study > Rust' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Rust] Start Rust (Day 8) - Rust Example Script 2 [Nth in Fibonacci Sequence] (0) | 2023.01.18 |
---|---|
[Rust] Start Rust (Day 7) - Rust Example Script 1 [Temperature Converter] (0) | 2023.01.09 |
[Rust] Start Rust (Day 6) - Common Programming Concepts [2] (2) | 2023.01.03 |
[Rust] Start Rust (Day 5) - Common Programming Concepts [1] (0) | 2023.01.03 |
[Rust] Start Rust (Day 4) - Guessing Game [3] (0) | 2022.10.27 |
Comments