본문 바로가기
Rust

Rust 함수, 제어문

by 올리고당 2021. 6. 15.

목차


Statements와 Expressions

Rust에서 함수를 이해하기 위해선, 먼저 Statements ( 구문 )Expressions ( 표현식 )의 개념을 이해해야 합니다. Statements와 Expressions는 무엇일까요?

Statements : 어떤 동작을 수행하고, 반환 값이 없는 명령들. ( ';' 있음, 반환 값이 없으므로 r-value 불가 )
Expressions : 결괏값을 산출해 반환해주는 식.( ';' 없음 )

 

이렇게만 이야기하면 이해가 잘 안 가실 것 같습니다. 저도 그랬습니다.

예제를 살펴보기 전에, '{ }' ( scope , 지역 )과 Statement와 Expression의 관계를 먼저 짚어보겠습니다.

{ Statements만으로 이루어진 scope }          => Statement 
{ Statements + Expression(마지막) }          => Expression
{ Statements + Expression(마지막 아님) }   => 컴파일 에러 ( if 문 없을 때 )

 

위의 규칙들을 머릿속에 염두에 두시고 예제를 보시길 바랍니다.

 

Statement Expression

 

y =  (expression의 반환값)

 


Function : Parameter와 Return value

함수를 작성할 때,

  • 반환 값을 Expression을 이용해 전달해도 되고, return 명령어를 이용해 전달해도 됩니다.
  • Rust에서는 관습적으로 함수 이름snake_case로 작성합니다.
  • Parameter의 타입은 타입 부연설명을 통해 반드시 명시해야 합니다.
  • Return value의 타입은 '->' 오른쪽에 반드시 명시해야 합니다.

 

함수 작성 예제 코드

 


Control Flow ( 제어문 )

if, else if, else

 

Rust에서 조건문을 작성할 때, bool type Expression을 조건으로 작성해야 합니다.

 

if 조건 booltype expression 예시 코드

 

if, else if, else 예시 코드

 

loop

 

loop 반환값 없는 경우 예시 코드

 

loop 반환값 있는 경우 예시 코드

 

while

 

while문도 if문과 동일하게 bool type Expression을 조건으로 작성해야 합니다.

 

while 예시 코드

 

for

 

for문 배열 순차순회

 

for문 역방향

※ (1..4)             => 1, 2, 3

※ (1..4). rev() => 3, 2, 1

 

지정한 정수만큼 증가

 


공식 도서

https://doc.rust-lang.org/book/

 

공식 도서 번역본

https://rinthel.github.io/rust-lang-book-ko/

 

Rust by Example

https://doc.rust-lang.org/stable/rust-by-example/index.html

 


오늘은 Rust의 Statements, Expression, 함수, 제어문에 대해 알아보았습니다.

저도 글을 작성하며 공부할 수 있는 유익한 시간이었습니다.

여러분께도 유익한 글 되었으면 좋겠습니다.

감사합니다.