전달인자 레이블
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 54번째.
Swift는 인자 레이블(argument labels)을 사용하여 함수 호출이 어떻게 읽히는지 제어할 수 있게 해줍니다. 인자 레이블은 함수를 호출할 때 사용하는 것이며, 매개변수 이름(parameter name)은 함수 내부에서 사용하는 이름입니다.
매개변수 이름 앞에 인자 레이블을 작성하여 두 가지를 모두 지정할 수 있습니다:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // 출력: Hello, Alice!여기서 to는 인자 레이블(호출할 때 사용)이고, name은 매개변수 이름(함수 내부에서 사용)입니다. 이렇게 하면 호출 시 "greet to Alice"와 같이 더 자연스럽게 읽힙니다.
때로는 더 깔끔한 호출을 위해 레이블을 완전히 생략하고 싶을 때가 있습니다. 인자 레이블로 언더스코어(_)를 사용하세요:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // 출력: 25언더스코어(_)가 없다면 square(number: 5)라고 작성해야 합니다. 언더스코어는 이러한 요구 사항을 제거하여, 함수 이름이 이미 목적을 명확하게 전달할 때 호출을 더 간단하게 만들어 줍니다.
챌린지
쉬움서로 다른 인자 레이블(argument label) 기술을 보여주는 두 개의 함수를 작성하세요:
함수 1: send
- 인자 레이블
message와 파라미터 이름text(타입String)를 사용합니다. - 인자 레이블
to와 파라미터 이름recipient(타입String)를 사용합니다. - 다음 형식의 문자열을 반환합니다:
"Sending '[text]' to [recipient]"
함수 2: double
- 언더스코어
_를 사용하여 인자 레이블을 생략합니다. - 파라미터 이름은
number(타입Int)입니다. - 숫자에 2를 곱한 값을 반환합니다.
두 함수를 정의한 후, 입력으로부터 두 개의 문자열과 하나의 정수를 읽어 들인 다음, 두 함수를 모두 호출하고 결과를 각각 별도의 줄에 출력하세요.
다음과 같은 입력을 받게 됩니다:
- 첫 번째 줄: 메시지 텍스트 (예:
"Hello") - 두 번째 줄: 수신자 이름 (예:
"Alice") - 세 번째 줄: 2배로 만들 숫자 (예:
"7")
예를 들어, 입력이 "Hello", "Alice", "7"인 경우 출력은 다음과 같아야 합니다:
Sending 'Hello' to Alice
14치트 시트
Swift는 전달인자 레이블(argument labels)을 사용하여 함수 호출이 읽히는 방식을 제어할 수 있게 해줍니다. 전달인자 레이블은 함수를 호출할 때 사용되며, 매개변수 이름(parameter name)은 함수 내부에서 사용됩니다.
매개변수 이름 앞에 전달인자 레이블을 작성하여 두 가지를 모두 지정합니다:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // 출력: Hello, Alice!여기서 to는 전달인자 레이블이고 name은 매개변수 이름입니다.
더 깔끔한 호출을 위해 전달인자 레이블을 생략하려면 언더스코어(_)를 사용하세요:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // 출력: 25언더스코어가 없다면 square(number: 5)라고 작성해야 합니다.
직접 해보기
// 입력 읽기
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: 아래에 코드를 작성하세요
// 'message'와 'to'라는 인자 레이블을 사용하여 'send' 함수를 정의하세요
// '_'를 사용하여 인자 레이블을 생략한 'double' 함수를 정의하세요
// 두 함수를 모두 호출하고 결과를 출력하세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.