100 Days of SwiftUI - Day 7
함수 function
함수는 키워드 func
를 사용하여 정의한다.
func doSomething(파라미터1, 파라미터2, ... 파라미터n) {
}
파라미터에는 이름과 데이터 타입을 명시해야 한다.
함수 사용 시 함수에 정의된 파라미터의 순서대로 데이터를 전달해야 한다.
함수가 실행 종료되면 함수 안에서 사용된 데이터들은 자동으로 삭제된다.
함수를 사용하여…
- 동일한 코드를 여러 곳에서 사용할 수 있음
- 긴 하나의 코드를 짧은 여러 코드로 나눌 수 있음. 프로그램의 가독성 향상
- 함수 합성 (작은 기능 여러개를 합성하여 큰 기능 하나를 구현할 수 있음)
파라미터의 경우 0개부터 매우 많이 사용할 수 있지만
해당하는 파라미터가 전부 필요한지, 함수를 더 작은 함수로 나눌 수 있을지를 고려해야 한다
값의 반환
함수를 호출한 곳으로 데이터를 반환하기 위해 두가지를 작성해야한다.
- 중괄호를 열기 전 화살표 (
->
)와 반환될 데이터의 타입을 작성한다. - 함수의 마지막에
return
키워드를 사용하여 반환할 데이터를 작성한다.
//정수 a와 b를 곱한 값을 반환하는 함수
func mlt(a: Int, b: Int) -> Int {
return a*b
}
화살표로 정의한 반환할 데이터의 타입과 실제 반환되는 데이터의 타입은 동일해야 한다.
암시적 반환
함수 내의 문장이 단일식인 경우 return
키워드를 사용하지 않아도 암시적으로 반환된다.
조건문, 루프, 변수 정의 등을 제외
여러개의 데이터를 반환하는 함수
여러 데이터를 반환하고 싶은 경우 튜플 타입을 사용한다.
func getUser() -> (firstName:String, lastName:String) {
("Taylor", "Swift")
}
인수 라벨 생략
함수 호출 시 인수에 라벨을 사용하는 것을 생략하기 위해서,
함수 구현 시 파라미터 이름 앞에 언더스코어와 스페이스를(_
)를 사용한다.
_ 파라미터
이다. 파라미터와 언더스코어 사이에 빈 공간이 있어야 하고 _파라미터
처럼 작성하면 컴파일에서 오류가 발생한다.
func mlt(_ a:Int, _ b:Int) -> Int {
return a*b
}
print(mlt(2,3))
내부 매개변수 이름, 외부 매개변수 이름
함수 호출 부분에서의 매개변수 이름과, 함수 내부의 매개변수 이름을 구분하여 함수의 가독성을 높일 수 있다.
//num1과 num2는 함수 호출 시 사용되는 이름이고, a와 b는 함수 내부에서 사용되는 이름이다.
func mlt(num1 a:Int, num2 b:Int)->Int {
return a*b
}
print(mlt(num1:2, num2:3))
배열, 집합, 튜플
배열(Array) : 순서가 정해져 있고, 데이터의 중복이 가능한 경우 사용
집합(Set) : 순서가 정해져 있지 않고, 데이터의 중복이 불가능한 경우 사용
튜플(tuple) : 데이터의 수와 타입이 고정되어 있는 경우 사용