basic
rust
![]()
문법
- 문자는 기본적으로 ascii가 아닌 유니코드로 처리된다.
- 구문과 표현식이 구분되어 있다.
let x = let y = 6-> 오류- 표현식은 ;가 없어야 한다.
- rust는 bool type 자동 변환을 하지 않는다.
- loop에 레이블을 붙일 수 있다.
- break로 값을 반환하거나 레이블로 탈출할 수 있다.
- scope를 벗어나는 동적 변수들은 drop 함수가 호출되어 자동으로 메모리가 해제된다.
- 얕은 복사가 일어날 경우 double free가 발생할 수 있기 때문에 rust에서는 move가 일어남. (이전 변수는 더이상 사용 불가)
- 이로 인해 참조자 없이 method에 인자로 넘겨줄 경우, 넘긴 변수는 그 다음부터 사용 불가
- 참조자(reference)를 사용하면 됨. 그러나 참조자를 사용하면 변수 수정 불가
- 가변 참조자(mut)를 사용하면 변수 수정 가능
- 단, 가변 참조자는 한 번에 하나만 존재할 수 있음.
- 가변 참조자(mut)를 사용하면 변수 수정 가능
- 참조자(reference)를 사용하면 됨. 그러나 참조자를 사용하면 변수 수정 불가
- 이로 인해 참조자 없이 method에 인자로 넘겨줄 경우, 넘긴 변수는 그 다음부터 사용 불가
- 얕은 복사가 일어날 경우 double free가 발생할 수 있기 때문에 rust에서는 move가 일어남. (이전 변수는 더이상 사용 불가)
- 구조체의 properties는 기본적으로 private. method를 정의해줌으로써 공개함.
- enum의 variant는 기본적으로 public
패키지 관리
- 바이너리, 라이브러리 크래이트를 만들 수 있다.
- src/bin/ 디렉토리에 여러 바이너리 크래이트를 넣을 수 있다.