함수 (function)는 '특정 임무를 수행하는 독립된 (self-contained) 코드 조각'이다.
Swift의 모든 함수는, 함수의 매개 변수 타입과 반환 타입으로 구성도니, 타입을 가진다.
함수를 정의할 때, 매개 변수 (parameters)라고 하는, 이름과, 타입을 지정한 값을 옵션으로 하나 이상 정의할 수 있다. 함수를 마칠 때, 반환 타입 (return type) 이라고 하는, 출력으로 되돌려 줄 값 타입을 옵션으로 정의할 수도 있다.
func test(name: String, time: Int) -> String{ var string = "" for _ in 0..<time{ string += "Hello \(name)!\n" } return string } test(naem: "Jun", time: 3)
Swift가 가지고 있는 가장 큰 특징중 하나가 바로 옵셔널 Optional이다. 값이 있을 수도 있고 없을 수도 있는 것을 나타낸다.
예를들어 ㅁ누자열의 값이 있다면 "가나다"가 될것이다. 값이 없을 경우에는 "" 값이 아닌 nil이 된다. 정수형의 값도 마찬가지이다.
빈 배열이나 빈 딕셔너리라고 해서 값이 없는 것이 아니다. 없는 값은 nil이다. 하지만 모든 변수에 nil을 넣을 수 있는 것은 아니다.
var testString: String = "문자열"
testString = nil
// 컴파일 에러가 발생한다.
값이 있을 수도 있고 없을 수도 있는 변수를 정의할 때에는 타입 어노테이션에 ? 를 붙여야 한다. 이렇게 정의한 변수를 바로 Optional이라고 한다. 옵셔널에 초기값을 지정하지 않으면 기본값은 nil 이 된다.