기본값
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 57번째.
때때로 매개변수는 대부분의 경우에 사용되는 값을 가집니다. 호출자가 매번 그 값을 제공하도록 요구하는 대신, 해당 매개변수에 기본값을 할당할 수 있습니다.
기본값을 설정하려면 매개변수 타입 뒤에 할당 연산자(=)를 사용하세요:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // 출력: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // 출력: Hi, Bob!함수를 호출할 때, 기본값이 있는 매개변수는 생략할 수 있습니다. Swift는 자동으로 기본값을 사용합니다. 하지만 다른 값이 필요한 경우, 여전히 명시적으로 값을 제공할 수 있습니다.
기본값을 가진 매개변수는 매개변수 목록의 끝에 배치해야 합니다. 이렇게 하면 함수 호출이 깔끔하고 가독성이 좋아집니다:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // 출력: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // 출력: 120.0기본값은 함수를 더 유연하게 만듭니다. 일반적인 경우에는 간단하게 작동하면서도, 필요할 때 커스터마이징이 가능하도록 해줍니다.
챌린지
쉬움name, greeting, 그리고 repeatCount를 매개변수로 받아 형식화된 인사 메시지를 반환하는 formatGreeting 함수를 작성하세요.
함수는 선택적 매개변수에 대해 다음의 기본값을 사용해야 합니다:
greeting의 기본값은"Hello"입니다.repeatCount의 기본값은1입니다.
인사말 패턴을 지정된 횟수만큼 반복하고, 각 반복 사이를 공백으로 구분한 문자열을 생성하세요.
매개변수:
name(String): 사람의 이름 (필수)greeting(String): 인사말 (기본값:"Hello")repeatCount(Int): 인사말을 반복할 횟수 (기본값:1)
반환값: 인사말 패턴이 반복된 문자열입니다. 형식: "[greeting], [name]!" 패턴이 repeatCount만큼 반복되며, 각 패턴은 단일 공백으로 구분됩니다 (String).
예를 들어, name이 "Alice"이고, greeting이 "Hi"이며, repeatCount가 2인 경우, 함수는 "Hi, Alice! Hi, Alice!"를 반환합니다.
name을 "Bob"으로만 호출하면 (기본값 사용), "Hello, Bob!"을 반환합니다.
치트 시트
매개변수에 기본값을 설정하려면, 매개변수 타입 뒤에 할당 연산자(=)를 사용하세요:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // 출력: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // 출력: Hi, Bob!함수를 호출할 때 기본값이 있는 매개변수는 생략할 수 있습니다. Swift는 자동으로 기본값을 사용하지만, 필요한 경우 명시적으로 다른 값을 제공할 수도 있습니다.
기본값이 있는 매개변수는 매개변수 목록의 끝에 배치해야 합니다:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // 출력: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // 출력: 120.0직접 해보기
func formatGreeting(name: String, greeting: String, repeatCount: Int) -> String {
// 여기에 코드를 작성하세요
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.