설렁 설렁 : 순수 취미 목적 학습 ~~ 주 2회 설렁 설렁 목표 ~~
올해 중순 까지 설렁 설렁 C++을 하면서 나름 얻는게 많았다. 가장 큰건 시들해진 개발에 대한 흥미를 올려준 것이고 부족한 CS 개념도 많이 챙겨줬다. 문제라면 당시 회사일이랑 관련이 깊어서 쉬는 느낌이 나질 않았다.
여튼 이번에는 Rust를 배워보고 이어서 Wasm을 손대보기로 했다~ 지금 나와 아무 관련이 없어 맘편하게 배워볼 수 있고 그런데 또 먼 미래에는 뭔가 도움이 될 것 같기도 해서 이 둘이 딱인듯 하다. 1일차 후기는 대만족. 대만족인 이유는 C++을 배워서 득본게 아직까지 거의 없었는데 Rust 학습에 도움이 받고 있다. 뭔가 쓸모있는 학습을 한 것 같아 좋다 좋아~
그리고 컴파일 언어를 제대로 접해본건 C++이 처음이었고 당시 회사 코드는 (모종의 이유로) 모던 C++ 기능을 거의 사용하지 않는 C에 더 가까운 코드 였기 때문에 Rust의 메모리 관리 방식이 무척이나 세련되고 멋져보여서 흥미가 배가된다~ 앗싸~
다음은 배운 것들 정리
let guess: u32 = guess.trim().parse().expect("Please type a number!");mut 의 재할당으로 타입을 바꾸려 하면 컴파일 타입에 타입 에러가 발생한다. 가리기(섀도잉)로 새로운 타입의 변수를 만드는건 가능하고 변수의 타입은 바꿀 수 없다.use 구문은 "이 경로를 짧게 쓰겠다" 또는 "이 트레이트의 메서드를 쓰겠다"는 의미를 가진다.use 트레이트는 타입스크립트의 type import와 비슷하지만 타입 체크뿐만 아니라 메소드 접근 권한 자체를 부여한다.let y = {
let x = 3;
x + 1 // 여기에 세미콜론이 붙었다면 구문이 되어 값을 반환하지 않고 블록은 빈 튜플(유닛)을 반환한다.
}; // 이 세미콜론은 블록 표현식의 일부가 아닌
// let y = ...; 구문을 종결하는 세미콜론이다.
// 이 블록 표현식은 최종적으로 4를 반환한다.
return 키워드로 값을 지정하여 함수로부터 일찍 값을 반환할 수 있다.if문에는 항상 명시적인 불리언 타입 조건식을 제공해야 한다. let s1 = String::from("hello");
let s2 = s1;
println!("{}, world!", s1);
let s2 = s1; 라인 뒤로는 s1이 더 이상 유효하지 않다고 판단한다. 반면 s2는 유효하다. 즉, 얕은 복사가 아닌 기존 변수가 무효화 되므로 이동되었다고 표현한다.