일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- rust
- docker
- dockerfile
- Container
- 플랫폼
- RabbitMQ
- Thread
- Python
- Refactoring
- fluent python
- 알고리즘
- 동시성
- Fast API
- Network
- 파이썬
- Kubernetes
- 블록체인
- Ethereum
- guru
- BAEKJOON
- 러스트
- 전문가를 위한 파이썬
- 이더리움
- 코어 이더리움 프로그래밍
- BlockChain
- function
- Algorithm
- IMAGE
- AWS
- 백준
Archives
- Today
- Total
글쓰기 | 방명록 | 관리 |
Victoree's Blog
[1] Rust의 데이터 타입과 함수 본문
728x90
1. DataType:: [Scala와 Compound]
1) Scala
- 하나의 값으로 표현되는 타입
- 정수형, 부동소수점 숫자, boolean, 문자
* signed / unsigned int
- signed 변수 : -(2^(n - 1)) 부터 2^(n - 1) - 1까지 표현 가능
- unsigned 변수 : 0부터 2^n -1까지 표현 가능
* 부동소수점
fn main() {
let x = 2.0; // Default가 f64
let y: f32 = 3.0; // f32
}
2) Compound
- Array (각 요소가 다 같은 타입), Tuple (다른 타입의 값들을 하나로 묶을 수 있음)
- Array
배열을 고정된 길이를 갖으며, 한번 선언되면 크기는 커지거나 작아지지 않음 - Tuple튜플은 compound로 고려되었기 때문에, 해당 변수는 튜푤 전체가 bind됨. 개별 값을 밖으로 빼내오려면, 패턴매칭을 통해 투푤을 구조해제하면 됨.
let tup: (i32, f64, u8) = (500, 6.4, 1); let (x, y, z) = tup; println!("The value of y is: {}", y);
2. Function
- void인 경우 return type을 () 로 명시함
- Rust의 대부분의 코드는 표현식이며, 이는 어떤 값을 return 함
- let x = (let y = 6);
- C 나 Ruby의 경우, (let y = 6) 에 반환값이 있기에 위 코드가 문제 없이 동작하지만(x에 6이 대입됨), Rust에서는 반환값이 없어서 버그가 발생함.
fn main() {
let x = 5;
let y = {
let x = 3;
x + 1 // 세미콜론이 없는 경우, 이를 반환함
};
println!("The value of y is: {}", y);
}
- 표현식이 세미콜론으로 끝나게 되면, 이는 구문으로 변경되어 반환값이 없어져 표현식이 아니게 됨.
* Function Overloading
- 오버로딩은 지원되지 않음
- 고정된 갯수의 파라미터를 가지고, 한가지 셋의 파라미터 타입을 가짐.
- Default 벨류를 지원하지 않음
// 하지만 함수의 파라미터는 generic 할 수 있음
fn pick_one<T>(a: T, b: T) -> T {
if std::process::id() % 2 == 0 { a } else { b }
}
fn main() {
println!("coin toss: {}", pick_one("heads", "tails"));
println!("cash prize: {}", pick_one(500, 1000));
}
728x90
'Rust' 카테고리의 다른 글
[4] 구조체(Struct)와 열거형(Enum) (0) | 2023.02.23 |
---|---|
[3] 라이프 타임과 참조자 유효화 (0) | 2023.02.16 |
[2] Rust의 꽃 : Memory Management와 Ownership (0) | 2023.02.16 |
[0] Rust 주요 특징을 알아보자 (0) | 2023.02.15 |
Rust 를 시작하며.. (2) | 2023.02.12 |
Comments