rust 4

Rust 2장 - 3. 문자열

원래는 문자열을 이렇게 빠르게 포스팅할 생각이 없었는데, rust로 알고리즘 문제 풀다가 문자열이 너무 이상해서, 공부 겸 먼저 올립니다. 문자열 타입 Rust에는 두 가지 타입의 문자열이 있다. String과 &str이다. String 특징 Vec를 가지는 구조체 UTF-8 보장 힙 영역의 데이터 내용 변경 가능 null terminated가 아님! &str 특징 &[char] 슬라이스 UTF-8 보장 스택 영역의 데이터 문자열 타입 지정 fn main() { let s = "ABCD"; println!("{}", s); } 위와 같이 "ABCD"를 지정하는 경우, &str 타입으로 취급된다. String 타입을 지정하고 싶은 경우 아래와 같이 만들면 된다. fn main() { let s = "ABC..

잡학(雜學) 2021.06.24

Rust 2장 - 2. 기본 데이터 타입

Rust의 기본 데이터 타입은 크게 Scala 타입과 Compound 타입으로 이루어져 있다. Scala 타입은 하나의 값만을 가지며, Compound 타입은 여러 개의 값을 가진다. Scala 타입 정수형, 실수형, 불(Bool)형, 문자(char)형이 있다. 분류 표현 크기(byte) 정수형 부호 있는 i8 1 i16 2 i32 4 i64 8 i128 16 isize 아키텍쳐 32bit => 4 64bit => 8 부호 없는 u8 1 u16 2 u32 4 u64 8 u128 16 usize 아키텍쳐 32bit => 4 64bit => 8 실수형 f32 4 f64 8 불형 bool 1 (1바이트다!) 문자형 char 4 (유니코드 지원) 정수형의 표현 방식 fn main() { let decimal1 ..

잡학(雜學) 2021.06.17

Rust 2장 - 1. 변수와 상수

변수 Rust는 정적 타입(Statically Typed) 언어이다. Rust의 변수 선언은 let 키워드 사용하며, 기본적으로 불변(immutable)이다. 변수는 변하는 수를 말하는데 불변이라고 하니 뭔가 이상하다. 근데 그냥 그렇다고 치고 넘어가자. fn main() { let x = 10; x = x + 1; println!("{}", x); } 위와 같이 변수를 사용할 경우, 아래와 같은 에러가 발생한다. error[E0384]: cannot assign twice to immutable variable `x` --> src/main.rs:3:5 | 2 | let x = 10; | - | | | first assignment to `x` | help: make this binding mutabl..

잡학(雜學) 2021.06.15

Rust 1장. Hello World!

누군가에게 사상 주입을 당한 것 같긴 한데, 모든 언어의 시작은 Hello World부터다. 이 장에서는 Rust로 작성한 Hello World에 관해서 설명하겠다. 새로운 패키지를 만들기 위해서 Rust에서는 Cargo 사용을 권장(혹은 추천)한다. $ cargo new rust_hello 위의 명령어는 "rust_hello"라는 이름의 새로운 패키지를 생성하는 명령어이며, 아래와 같은 디렉터리와 파일이 생긴다. rust_hello ├── Cargo.toml └── src └── main.rs Cargo.toml 파일은 매니페스트 파일이라고도 불리며, 간단히 말하면 해당 패키지를 위한 메타데이터 파일이다. 파일의 내용은 아래와 같다. [package] name = "rust_hello" version ..

잡학(雜學) 2021.06.12