- Swift 는 함수형 프로그래밍 패러다임을 포함하는, 다중 프로그래밍 패러다임 언어이다.
- 함수형 프로그래밍 -> 함수가 1급 객체이다.
- 따라서 변수나 상수에 함수를 할당할 수 있다.
- 함수의 매개변수에 함수를 전달할 수 있다.
- func 키워드 사용
func sum(a: Int, b: Int) -> Int{ return a+b } sum(a: 3, b: 5)
매개변수 타입과 반환 타입을 명시해준다.
반환값이 없는 함수를 생성할 시 Void 키워드를 사용하거나, 명시하지 않는다.func sayHello(name: String) -> Void{ print("Hello, I'm \(name)") } sayHello(name: "Kim Sang Woo")
- 전달 인자 레이블의 사용
-> 사용자 입장에서 매개변수의 역할을 좀 더 명확하게 표시할 수 있다.
-> 가독성이 좋은 코드를 작성할 수 있다./* func 함수이름 (전달인자 레이블: 매개변수 이름: 매개변수 타입 전달인자 레이블: 매개변수 이름: 매개변수 타입...) -> 반환타입 { return 반환값 } */ // 전달 인자 레이블 // 이렇게 함수를 호출할 때 전달인자 레이블을 사용하면 // 사용자 입장에서 매개변수의 역할을 좀 더 명확하게 표현할 수 있어서 // 코드의 가독성이 높아진다. func sendMessage(from myName: String, to name: String) -> String{ return "Hello \(name)! I'm \(myName)" } sendMessage(from: "KSW", to: "BSJ")
- 와일드 카드 식별자
// 와일드 카드 식별자 // 매개변수 앞에 언더 바를 적어주면 전달인자 레이블을 사용하지 않음 // 호출할 때 매개변수 이름을 적지 않고 값만 적어줘도 됨. func _sendMessage(_ name: String) ->String{ return "Hello, I'm \(name)" } _sendMessage("KSW")
- 가변 매개변수
// 가변 매개변수 - 0개 이상의 값을 받아옴 // 함수마다 가변 매개변수는 하나만 가질 수 있다. func sendMessage(me: String, friends: String...) -> String { return "Hello \(friends)!, I'm \(me)" } sendMessage(me: "KSW", friends:"BSJ", "BSY", "BSG")