iOS/Swift

[Swift] 함수

유훈 | Yuhun 2022. 1. 22. 16:21
반응형

Swift를 이제 시작했는데 다른 언어의 특성을 섞어 놓은 느낌이 듭니다.

예를 들어 모순적이지만 c++의 불확실성 제거와 파이썬의 용인은 섞어놓은 느낌이랄까...?

 

암튼 함수에 대해 알아보겠습니다.

함수의 선언과 사용

// 함수 선언
// func 이름(매개변수: 타입) -> 함수 반환 타입{ }
func name(a: Int, b: String) -> Int{
    return 0
}

// 반환 값이 없으면 -> 반환 부분 생략 가능 또는 Void 쓰기

// 함수 호출
name(a: 100, b: "String")

 

함수 조금 더 자세히

// 매개변수 Default 값
func a(a: Int , b: Int = 100) -> Void{
    print(a, b)
}
a(a: 10)


// 전달인자
// 이건 좀 생소한 개념
// 매개변수가 다르면 다른 함수로 취급 가능(오버로딩이 되는듯)
// 외부에서는 앞의 이름으로 전달인자를 받고 함수 내부에서는 뒤의 매개변수 값 사용
func b(hello a:Int, world b:Int = 200) -> Void{
    print(a, b)
}
b(hello: 10, world: 20)


// 가변 매개변수 : 파이썬의 kargs와 비슷한 느낌
// 마지막에 ...을 한다.
func c(a: Int, b: Int, c:Int...) -> Void{
    print(c)
}
c(a: 10, b: 20, c: 30,40,50)


// 함수를 객체로 전달
// 생소2
// 다음과 같이 매개변수의 타입이 같으면 할당 가능
var example: (Int, Int) -> Void = a(a: b:)

example(10,20)

출처 : 야곰 스위프트 기본 문법 강좌

반응형