Rust 기본, 구조체 (Struct) Tuple structs
튜플(Tuple)과 튜플 구조체(Tuple structs)
- 튜플 : 여러 타입을 하나의 데이터로 묶어 준다. 단, 튜플은 타입을 정의하지 않는다.
- 튜플 구조체 : 데이터 타입이나 인자 개수 체크가 가능한 하나의 데이터 타입으로 묶어준다.
fn main() {
// 튜플(tuple)
// 이 함수 저 함수 사이를 이동하다 보면 변수 이름이 바뀌면서,
// 튜플 데이터가 어떤 의미였는지 알기 어려워진다.
let rgb_color = (255, 106, 0);
let cmyk_color = (0, 58, 100, 0);
// 튜플 구조체(tuple structs)
// 타입이나 인자 개수 체크 가능.
struct RGB(i32, i32, i32);
struct CMYK(i32, i32, i32, i32);
// 타입을 통해 어떤 테이터로 묶인 것인지 알 수 있다.
let color1 = RGB(255, 106, 0);
let color2 = CMYK(0, 58, 100, 0);
}
유닛 구조체(Unit structs)
: 유닛 구조체는 필드 없이 드물게 사용한다.
ex) 데이터를 가지지 않는 트레이트(trait)를 구현할 때 유닛 구조체를 사용한다. (트레이트는 추후 다룬다.)
// Unit structs
struct MyStruct;
튜플 구조체 활용.
struct Point(f32, f32);
impl Point {
fn on_x_axis(&self) -> bool {
println!("Point.x: {}", self.0);
self.0 == 0.0
}
fn on_y_axis(&self) -> bool {
println!("Point.y: {}", self.1);
self.1 == 0.0
}
}
fn main() {
let point = Point(0.0, 0.0);
if point.on_x_axis() && point.on_y_axis() {
println!("Point is origin");
}
}
'개발 > 러스트 (Rust)' 카테고리의 다른 글
Rust 기본 : 결과 열거형 (Result enum) (0) | 2024.08.21 |
---|---|
Rust 기본, 옵션 열거형 (Option enum) (0) | 2024.08.17 |
Rust 기본, 패턴 매칭 표현식 (Match expression) (0) | 2024.08.13 |
Rust 기본, 열거형 (Enumerations) (0) | 2024.08.10 |
Rust 기본, 구조체 (Struct) Implementation blocks (0) | 2024.08.01 |
Rust 기본, 구조체 (Struct) (0) | 2024.07.24 |
Rust 기본, to_string() vs to_owned() (0) | 2024.07.20 |
Rust 기본 : UTF-8 문자열 (Strings) (0) | 2024.07.17 |