- 변수, 기본 타입들, 함수, 주석, 제어문에 대해 알아봄.
- 기본 변수는 불변성.
- 변수명의 접두어로
mut
키워드를 사용해 가변성 변수를 선언할 수 있음.
- const 상수가 따로 있음
- let 변수와 const 상수의 차이
- const: 실행 시작부터 종료까지 절대 변경하지 않는 값
- Shadowing 사용 가능 여부.
- let으로 선언한 변수는 결국 변수
- 기본적으로 변경 가능하나, 언어 차원에서 방지하는 느낌
- const는 컴파일 타임에 평가가 됨
- const가 아닌 불변 변수는 런타임에 평가가 된다.
- shadowing에 대한 유용성 및 개발자 실수 의문
- 정수형, 부동소수점, Boolean 문자 등.
_
을 사용해 시각적인 구분 사용 가능.
isize
, usize
: 아키텍처에 따라 32bit or 64bit.
- char 는 Unicode
- ANSI를 char로 담기에는 변환이 필요할 듯
let tup = (500, 6.4, 1);
let (x, y, z) = tup;
- 각 요소 타입이 다를 수 있음.
- 요소 접근: '.[index]'
- 요소 타입을 통일해야 함.
- 요소 접근: 'array[index]'
- index가 배열 길이를 초과할 경우
panic
이 발생함.
fn plus_one(x: i32) -> i32 {
x + 1
}
- 함수의 마지막에표현식을 사용해서 반환.
return
키워드를 사용하여 중간에 반환할 수도 있음.
- 함수의 기대와 다르게 값을 반환하지 않을
()
이 반환됨.
- 구문(statement)
- 표현식(expression)
- '//': 코멘트에 권장.
- '/* */': 코드 권장.
- '///': 문서주석.
- 조건은 무조건 Boolean이어야 함.
- 표현식 구문으로 넣을 수 있음
fn main() {
let condition = true;
let number = if condition {
5
} else {
6
};
println!("The value of number is: {}", number);
}
- 표현식 타입은 같아야 함(컴파일 타임에 assign이 결정되어야 하기 때문)
fn main() {
let condition = true;
let number = if condition {
5
} else {
"six"
};
println!("The value of number is: {}", number);
}
fn main() {
for number in (1..4).rev() {
println!("{}!", number);
}
println!("LIFTOFF!!!");
}
- 화씨와 섭씨를 상호 변환.
- n번째 피보나치 수열 생성.
- 크리스마스 캐롤 “The Twelve Days of Christmas”의 가사를 반복문을 활용해 출력.
- 4장, 5장, 6장
- github에 본인 ID로 서브 폴더 만들고 과제 커밋하기
- 과제 폴더명은 자유롭게 하되 prefix "chapter3_" 정도 추가
- 이지한: 너무 짧아서 아쉬워요.(일찍 끝나서 좋기도..😀👍) 그리고 기록 속도랑 발표 속도를 좀 맞추면서 하면 좋을 것 같아요.
- 허신: Shadowing! 흥미로웠어요
- 정연집: 기존에 알던 언어들과 다른 내용들이 점차적으로 보여 흥미롭습니다~!!
- 유병조: 다음주가 소유권에 대한 내용인데 기대되요
- 이명수: 다음주에는 더 분발해야겠어요.. ㅎㅎ
- 김기덕: 👍이번장 마지막에 과제가 있어서 공부한 내용을 적용해볼 수 있을 것 같아 더 재밌어지고 있습니다!
- 이재현: 구문, 표현식 부분이 흥미로웠어요!