Swift/Swift-Basica
Swift (4) - 함수
peter.j
2022. 8. 19. 21:34
1. 기본적인 함수 정의 및 호출
func 함수명(파라미터: 파라미터타입) -> 반환타입 {
... some code ...
return 반환값
}
/* 정의 예시 */
func addOne(num: Int) -> Int {
return num + 1
}
/* 호출 예시 */
var result: Int = addOne(10)
2. 외부명 및 내부명
Swift는 신기하게도 함수내부에서 사용하는 파라미터이름과 호출부에서 사용하는 파라미터이름을 구분할 수 있습니다.
func 함수명(외부명 내부명: 타입) -> 반환타입 {}
그리고 아래와 같이 사용할 수 있습니다.
/* 함수 정의 */
func greet(name n: String) -> String {
return "Hello, \(n)!"
}
/* 함수 호출 */
greet(name: "Peter")
만약 외부명 내부명이 따로 나뉘어져 있지 않고 하나의 파라미터이름만 사용할 경우, 해당 파라미터이름이 내부명 및 외부명 모두로 사용됩니다.
/* 함수 정의 */
func greet(name: String) -> String {
return "Hello, \(name)!"
}
/* 함수 호출 */
greet(name : "Peter")
3. 기본값
함수의 파라미터에는 전달되지 않았을 경우에 대한 기본 값을 지정할 수 있습니다.
/* 함수 정의 */
func greeting(name: String = "Peter") -> String {
return "Hello, \(name)!"
}
/* 함수 호출 */
greet()
4. 가변파라미터
파라미터 타입 뒤에 ...를 붙이면, 파라미터를 해당 타입의 배열로 받을 수 있습니다.
/* 함수 정의 */
func sum(nums: Int...) -> Int {
var result: Int = 0
for i in nums {
result += i
}
return result
}
/* 함수 호출 */
var result = sum(1, 2, 3, 4, 5)
5. inout 파라미터
C언어의 pointer와 비슷한 개념입니다.
함수 정의의 파라미터이름 앞에 inout을 표시하고 호출부에서 인자 앞에 &를 붙여 전달하면,
호출 인자의 메모리주소가 전달되어 해당 메모리주소의 값을 직접 변경할 수 있습니다.
/* 함수 정의 */
func control(inout target: Int) -> Void {
target += 1
}
/* 함수 호출 */
var number = 1
control(&number)
number // 2
참고
https://www.devkuma.com/docs/swift/%ED%95%A8%EC%88%98/
사업자 정보 표시펼치기/접기
1 | g | asdf | 사업자 등록번호 : 123-12-12345 | TEL : 010-111-1111 | Mail : asdf@gmail.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기