반응형
Function 함수
func plus(num1:Int, num2:Int) -> Int {
return num1 + num2
}
// 튜플 형태의 리턴값
func plus2(num1:Int, num2:Int) -> (String, Int) {
return ("두 수를 더하면", num1 + num2)
}
let a = 10
let b = 20
var result = plus2(num1: a, num2: b)
두 수를 파라미터로 받아 더해서 반환하는 함수를 작성했다.
func 키워드와 함수명을 적고 괄호 안에 파라미터 이름과 타입, -> 뒤에는 리턴 타입을 적어준다.
// 함수 호출
var sum = plus(num1: 10, num2: 30)
sum 변수에는 10과 30을 더한 40이 담기게 된다.
// 파라미터명 생략
func plus(_ num1:Int, _ num2:Int) -> Int {
return num1 + num2
}
var sum = plus(10,20)
함수를 선언할 때 파라미터명 앞에 _ 언더바를 붙여주면,
함수를 호출할 때 파라미터명 표기 없이 값만 적어 사용할 수 있다.
Closure 클로저
let score = { (a:Int) -> String in
return "\(a)점"
}
파라미터를 받고 반환하는 것이 함수와 매우 유사하지만,
함수와 유사하지만 클로저는 이름이 없고, 다양한 축약 방식을 써서 코드를 간결하게 작성할 수 있다.
// return 키워드 생략
let score2 = { (a:Int) -> String in
"\(a)점"
}
// 리턴 부분의 내용으로 타입 추론이 가능하기 때문에 리턴 타입을 명시하지 않아도 됨. (-> String 생략)
let score3 = { (a:Int) in
"\(a)점"
}
// in 생략하고 파라미터 바로 사용
// in을 생략하면 반드시 $0, $1, ... 표기해주어야 함.
// in을 생략하지 않으면 달러 표기는 사용할 수 없음 !
let score4 : (Int) -> String = {
"\($0)점"
}
score4(100)
let score4_2 : (Int, Int, Int) -> String = {
"\($0 + $1 + $2)점"
}
score4_2(10, 20, 30)
반응형
'DEV - iOS > iOS' 카테고리의 다른 글
[Swift] 스위프트 기본 문법 공부(7) - Class(참조 & 상속) (0) | 2022.02.17 |
---|---|
[Swift] 스위프트 기본 문법 공부(6) - Enumerations (0) | 2022.02.15 |
[Swift] 스위프트 기본 문법 공부(4) - Set & Dictionary (0) | 2022.02.09 |
[Swift] 스위프트 기본 문법 공부(3) - Array (0) | 2022.01.09 |
[Swift] 스위프트 기본 문법 공부(2) (0) | 2022.01.04 |