Rust에서 함수는 다른 프로그래밍 언어와 다를바 없다 굉장히 유사하다.
하지만 역시 특징이 있기 때문에 특징에 대해서 알아보도록 하겠다.
1. main함수
여느 프로그래밍 언어(C, JAVA)와 똑같이 Rust에도 main함수가 필요하다.
main함수가 없다면 컴파일러는 무엇을 실행해야 하는지 모르기 때문에 오류가 발생한다.
이 예제는 main함수 없이 사용자 정의 함수만 선언 해서 오류가 생긴 것이다.
2. 함수의 반환값
여기서 2번째 줄에 있는 것은 y에 6을 바인딩하는 "구문"이다. 구문은 반환값을 리턴하지 않는다.
3번째 줄에서는 x에 어떠한 값을 바인딩 해야하는데 "구문"은 리턴값이 없기 때문에 x에 바인딩할 값을 컴파일러가 찾지 못하는 것이다. 그렇기 때문에 "구문"을 x에 바인딩 하는 문법은 먹히지 않고 오류가 발생한다.
3. 표현식
위에 사진에서 let y = 3;이란 "구문"이 있는데 여기서 값 3은 3이란 값을 산출하는 표현식이다.
3이라는 것을 쓰면 10진수 숫자 3을 반환해라 라는 일종의 표현식인 것이다.
이것을 중괄호를 사용하여 복잡한 식도 구현 할 수 있는데,
이런식으로 복잡한 표현식을 구현할 수 있다.
하지만 여기서 특징이 있는데,
- y에 바인딩 되는 값을 정해주는 구문에는 세미콜론을 붙이지 않는다.
- 표현식의 끝에 세미콜론을 붙여준다.
꼭 세미콜론의 위치에 신경 써주도록 하자.
4. 반환 값을 갖는 함수
표현식 처럼 함수도 반환값을 가질 수 있다.
int five(){ //C언어 문법
return 5;
}
위 코드들은 다른 언어의 함수 예제들이다 비교하면서 이해하면 쉽다.
다른 언어와 마찬가지로 함수에서 리턴값을 반환하기 위해서는 함수 선언 후에 화살표를 사용하여 데이터 타입을 정해주어야 한다.
반환되는 데이터 타입을 정해주지 않는다면 오류가 발생한다.
(1) 사진처럼 표현식과 동일하게 반환값에 세미콜론을 붙이지 않으면 값만 쓰는 것만으로도 리턴값을 정해줄 수 있으나,
(2) 사진처럼 return키워드와 함께 사용 할 수도 있다.
나는 C에 익숙해서인지 1번 사진의 장점이 무엇인지 모르겠다 가독성이 너무 떨어져서 나는 2번 사진의 형태를 선호한다.
5. 함수의 인자
int five(int value){ //C언어 문법
return value;
}
int main(){
int x = five(5);
printf("%d", x);
}
다른 언어와 마찬가지로 Rust에서도 함수에 인자값을 추가할 수 있다.
C에서도 인자값에 대한 데이터타입 int를 정해줘서 인자값을 받았다.
Rust에서도 동일하다.
함수를 선언할 때, 인자값의 콜론을 사용하여 데이터 타입을 정해주면 인자값의 사용이 가능하다.
typescript와 많이 비슷한것 같다
'Rust > Rust 문법' 카테고리의 다른 글
Rust (7) - 조건문, 반복문 (if, for) (0) | 2022.04.27 |
---|---|
Rust (6) - 주석 (0) | 2022.04.22 |
Rust (4) - Rust에서 변수의 데이터 타입 (0) | 2022.04.20 |
Rust (3) - Rust에서 변수의 특징 (0) | 2022.04.19 |
Rust (2) - Rust설치, 프로젝트 생성과 기본 출력 예제 (0) | 2022.04.14 |
최근댓글