일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- framework
- API
- 알고리즘
- 읽기쉬운코드
- 클린코드
- 코딩
- 프레임워크
- ES
- Java
- 애자일기법
- 개발
- cleancode
- 백준
- Elasticsearch
- 애자일
- 그리디
- 데이터베이스
- 그리디알고리즘
- JPA
- spring boot
- 코드
- Spring
- 코딩테스트
- 엘라스틱서치
- 개발자
- database
- 스프링
- 자바
- 애자일프로그래밍
- Baekjoon
- Today
- Total
튼튼발자 개발 성장기🏋️
러스트 6 - 함수 본문
Rust 함수는 이미 사용했다.
이전 <How to run> 포스팅(https://maeng-dev.tistory.com/4)에서 함수에 대해 간략하게 언급한 적이 있다.
우리가 매일 같이 사용했던 main 함수를 선언할 때 fn을 사용하는 것과 같이 커스텀 되는 함수가 필요할 때도 마찬가지로 fn을 사용하면 된다.
fn main() {
println!("Main Func");
my_func();
}
fn my_func() {
println!("My Func");
}
즉 함수는 fn으로 선언하고 중괄호로 정의한다. 선언되는 위치는 크게 중요하지 않다.
Parameters(파라미터)를 전달해서 출력해주는 함수를 짜보자.
fn main() {
println!("Main Func");
my_func('A', 123);
}
fn my_func(p1 : char, p2 : i8) {
println!("첫 번째 파라미터 : {}", p1);
println!("두 번째 파라미터 : {}", p2);
}
main에서 호출하는 my_func에 A라는 문자와 123이라는 값을 전달한다.
my_func은 값을 받아서 출력하게 되는 것. (my_func에서 사용할 변수명 : 타입)
함수 본문은 구문과 표현식으로 꾸며진다.
구문은 동작을 수행해도 값을 반환하지 않는 명령을 뜻하지만 표현식은 반대로 값을 반환한다.
fn main() {
let a = 1; // 구문
// 표현식
let b = {
println!("표현식");
let a = 2;
a * 100
};
println!("b : {}", b);
}
이 코드와 결과를 보면 몇 가지의 사실을 알 수 있다.
사용하지 않는 변수의 이름 가장 앞 자리에 언더바(_)를 사용하기를 권장한다.
rust에서는 "return"이라고 명시를 하지 않아도 값이 반환 되는구나.
값을 반환할 경우에는 세미콜론(;)을 사용하지 않는구나.
그렇다면 반환 값을 가지는 함수들의 형태는 어떠할까?
fn main() {
println!("return value : {}", return_func());
}
fn return_func() -> char {
'A'
}
javascript에서의 arrow function과 비슷하게 생긴 저 녀석(->)을 주의깊게 보자.
상위 코드의 return_func는 다음과 같이 말하고 있다.
"내 이름은 return_func이고 문자를 반환하는 함수야. A를 반환해야지!"
즉, 리턴되는 녀석의 타입을 함수 선언할 때 정의해주어야 한다는 것!!!! 잊지말자 ㅎㅎㅎㅎ
'프로그래밍 > RUST' 카테고리의 다른 글
러스트 8 - 주석 (0) | 2019.02.23 |
---|---|
러스트 7 - 제어문과 반복문 (0) | 2019.02.23 |
러스트 5 - 변수와 타입 #2 (0) | 2019.02.16 |
러스트 4 - 변수와 타입 #1 (0) | 2019.02.16 |
러스트 3 - Cargo (0) | 2019.02.10 |