복합 타입
튜플과 배열
복합 타입은(는) CoddyKit의 무료 Learn Rust Coding 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn Rust Coding 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.
복합 타입이란 무엇인가요
복합 타입은 여러 값을 하나로 묶습니다. Rust에는 두 가지 기본 복합 타입이 있습니다.
- 튜플 — 서로 다른 타입일 수 있는 값들을 고정된 크기로 묶은 것
- 배열 — 같은 타입의 값들을 고정된 크기로 묶은 것
fn main() {
let tup = (1, 2.0, 'c');
let arr = [10, 20, 30];
println!("{} {}", tup.0, arr[0]);
}튜플 만들기
튜플은 괄호 안에 값을 묶어 넣습니다. 각 요소의 타입은 서로 달라도 됩니다.
튜플의 타입은 요소 타입들을 조합한 것입니다.
fn main() {
let person: (&str, u32, f64) = ("Alice", 30, 5.6);
println!("{} is {} years old", person.0, person.1);
}튜플 요소에 접근하기
점과 인덱스를 사용해 튜플 요소에 접근하며, 인덱스는 0부터 시작합니다.
tup.0은 첫 번째 요소입니다.tup.1은 두 번째 요소입니다.
fn main() {
let point = (3, 7);
let x = point.0;
let y = point.1;
println!("x={} y={}", x, y);
}튜플 구조 분해하기
한 번의 작업으로 튜플을 여러 변수로 나눌 수 있습니다. 이를 구조 분해라고 합니다.
fn main() {
let coords = (1.5, 2.5, 3.5);
let (a, b, c) = coords;
println!("{} {} {}", a, b, c);
}유닛 타입
빈 튜플 ()을 유닛 타입이라고 합니다. 이는 '의미 있는 값이 없음'을 나타냅니다.
아무것도 반환하지 않는 함수는 실제로 ()을 반환합니다.
fn main() {
let nothing = ();
println!("unit value is {:?}", nothing);
}배열 만들기
배열은 같은 타입의 여러 값을 고정된 길이로 저장하며, 대괄호로 작성합니다.
배열의 타입은 [type; length]입니다.
fn main() {
let days: [&str; 3] = ["Mon", "Tue", "Wed"];
let numbers = [1, 2, 3, 4, 5];
println!("{} {}", days[1], numbers[4]);
}배열 인덱싱
대괄호와 0부터 시작하는 인덱스를 사용해 배열 요소에 접근합니다.
범위를 벗어난 인덱스에 접근하면 실행 중 패닉이 발생합니다. Rust는 안전을 위해 범위를 검사합니다.
fn main() {
let colors = ["red", "green", "blue"];
println!("first {}", colors[0]);
println!("last {}", colors[2]);
}초기값 반복하기
배열을 같은 값으로 채우려면 [value; count]를 사용합니다.
그러면 모든 요소가 value와 같은 count개의 요소를 가진 배열이 만들어집니다.
fn main() {
let zeros = [0; 5];
println!("{:?}", zeros);
println!("length is {}", zeros.len());
}배열 길이
.len() 메서드는 배열의 요소 개수를 반환합니다. 길이는 컴파일 시점에 고정됩니다.
크기를 늘릴 수 있는 목록이 필요하다면 대신 Vec을 사용합니다.
fn main() {
let scores = [88, 92, 75, 100];
println!("there are {} scores", scores.len());
}배열 순회하기
for 반복문을 사용해 배열의 각 요소를 순서대로 확인합니다.
fn main() {
let nums = [2, 4, 6, 8];
let mut sum = 0;
for n in nums {
sum += n;
}
println!("sum = {}", sum);
}튜플과 배열 비교
각각 다음과 같은 경우에 사용합니다.
- 좌표와 label처럼 서로 다른 타입을 고정된 묶음으로 다룰 때는 튜플을 사용합니다.
- 점수 목록처럼 같은 타입을 고정된 묶음으로 다룰 때는 배열을 사용합니다.
fn main() {
let record = ("Bob", [90, 85, 95]);
println!("{} first score {}", record.0, (record.1)[0]);
}빠른 확인
Rust 복합 타입에 대한 올바른 설명을 선택하세요.
복습
Rust의 복합 타입은 다음과 같습니다.
- 튜플 —
(a, b, c)와 같이 서로 다른 타입을 담으며,.0으로 접근하고 구조 분해할 수 있습니다. - 배열 —
[a, b, c]와 같이 같은 타입을 담고 길이가 고정되며,[index]로 접근합니다. ()은 유닛 타입입니다.
fn main() {
let (name, scores) = ("Cara", [70, 80, 90]);
let mut total = 0;
for s in scores {
total += s;
}
println!("{} total {}", name, total);
}자주 묻는 질문
“복합 타입” 강의는 무료인가요?
네 — “복합 타입” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn Rust Coding 강의 전체를 잠금 해제할 수 있습니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.
“복합 타입”에서 뭘 배우나요?
튜플과 배열 브라우저에서 직접 실행하는 실습 코드로 Learn Rust Coding을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Learn Rust Coding을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Learn Rust Coding은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“복합 타입” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Learn Rust Coding 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Learn Rust Coding 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.