← 메인으로

0821-1 함수 복습

함수 정의, 매개변수, 반환값

func greet(name: String) -> String { return "Hello, \(name)!" } let result = greet(name: "James") print(result) // Hello, James! 

외부/내부 매개변수 이름

Swift는 매개변수에 두 개의 이름을 붙일 수 있다.

func greet(to name: String, from sender: String) -> String { return "Hello, \(name), from \(sender)" } greet(to: "James", from: "Alice") 

만약 외부 이름을 쓰고 싶지 않으면 _ 사용

func greet(_ name: String) { print("Hello \(name)") } greet("James") // 외부 이름 필요 없음 

기본값, 가변 매개변수, inout

  1. 기본값
func greet(name: String = "Guest") { print("Hello \(name)") } greet() // Hello Guest greet(name: "GO") // Hello Go 
  1. 가변 매개변수 (...)
func sum(_ numbers: Int...) -> Int { return numbers.reduce(0, +) } print(sum(1, 2, 3, 4)) //10 
  1. inout(값 변경 허용)
func addOne(to number: inout Int) { number += 1 } var x = 10 addOne(to: &x) print(x) // 

📝 함수 연습문제

1. 외부/내부 매개변수

👉 사람 이름과 나이를 받아서 "James is 30 years old" 형태의 문자열을 반환하는 함수 introduce를 만들어라.

func introduce(person name: String, age: Int) -> String { return "\(name) is \(age) years old" } print(introduce(person: "James", age: 30)) 

2. 가변 매개변수

👉 여러 개의 문자열을 받아서 모두 이어붙인 하나의 문자열을 반환하는 함수 combineWords를 만들어라.

func comebineWords(words: String...) -> String { return words. 아 모르겠다. ㅠ } print(combineWords("I", "love", "Swift")) 
func comebineWords(words: String...) -> String { return words.joined(separator: " ") } print(combineWords("I", "love", "Swift")) 

3. inout

👉 정수 하나를 받아서 제곱값으로 바꾸는 함수 square를 만들어라.

func square(to number: inout Int) { return number * number } var num = 5 square(&num) 
func square(_ number: inout Int) { number = number * number } var num = 5 square(&num)