아래의 형태로 함수를 정의한다.
⁉️ 반환값이 없을 때, 반환타입으로 `Void`를 넣거나 `-> 반환타입` 부분을 생략
func 함수이름 (param1Name: param1Type, param2Name: param2Type) -> 반환타입 { /* 구현부 */ return 반환값 }
/* 1. 매개변수 이름과 값을 넣어 호출 */ callFunction(a: 10, b: 20)
/* 2. 전달인자 레이블과 값을 넣어 호출 */ // func callFunction(left a: Int, right b: Int) -> Int {} callFunction(left: 10, right: 20)
/* 3. 전달인자 레이블이 '_'여서 값만 넣어 호출 */ // func callFunction(_ a: Int,_ b: Int) -> Int {} callFunction(10, 20)
함수도 하나의 객체로 변수나 상수에 하나의 타입으로 지정해서 저장 가능
func sum (a: Int, b: Int) -> Int { return a+b } var varFunction: (Int, Int) -> Int = sum(a:b:)
func 함수이름(param1Name: param1Type = defaultValue) {}
매개변수의 별명으로, 매개변수의 의미를 더 명확히 해야할 경우에 사용
⁉️ 전달인자 부분에 `_`를 사용하면, 함수 호출시에 매개변수이름없이 호출 가능
func 함수이름(전달인자 param1Name: param1Type) {}
함수당 1개인 맨 마지막 매개변수 타입 뒤에 띄어쓰기 없이 '...'로 표현
⁉️ 함수 body에서 가변 매개 변수로 넘어온 인자는 `Array<paramType>` 타입으로 전달
func getStringNames(friends: String...) -> String { return "\(friends)" }
getStringName() // 결과 : []
🧷 참고한 강의 : "iOS 프로그래밍을 위한 스위프트 기초"