Statements and Expressions
Statement(구문)은 값을 리턴하지 않는 명령이고 Expression(표현식)은 값을 리턴하는 명령이다.
\[
Statement \subset Expression
\]
-
Statements
- 함수 정의
fn function(...){...}
은 Statement이다. let
구문은 Statement이다. => C는 변수 할당 결과가 또 다른 변수에 들어갈 수 있다는 차이점이 있다.x = y = 6
let x = (let y = 6); // Compile Error
- 문장 마지막에 붙는 세미콜론
;
는 해당 문장을 Statement로 만든다.
- 함수 정의
-
Expressions
- 할당연산자
=
의 우측값은 Expression이다. 예를 들어let y = 6;
Statement 중6
은 Expression이다. - 함수를 호출하는 것은 Expression이다.
- 매크로를 호출하는 것은 Expression이다.
{}
는 Expression이다.
let x = { let y = 6; y }; // Ok x <- 6
- if 문은 Expression이다.
- 세미콜론
;
이 붙지 않은 문장은 Expression이다. break
뒤에 오는 표현은 Expression이다. 따라서, 반복문은 Expression이 될 수 있다.
let mut counter = 10; let something = loop { counter += 1; if counter == 10 { break counter * 2; // loop가 `counter * 2` 를 평가하게 된다. } }; // 이 loop가 expression임을 알려준다.
https://rust-book.cs.brown.edu/ch03-03-how-functions-work.html#statements-and-expressions
- 할당연산자