DAY 08
함수 기초(function)
함수(function)
특정 작업을 수행하는 코드 불록
매개변수(parameter, 인자)와 인수(argument)는 차이점이 있음
함수 정의부의 값을 parameter, 호출시의 값은 argument라고 부름
메서드(method)
특정 클래스, 구조체, 열거형 내의 함수
함수를 스위프트 클래스 내에 선언하면 메서드라 부름
함수를 선언하는 방법
func <함수명> (<매개변수 이름>: <매개변수 타입>, <매개변수 이름>: <매개변수 타입>, ...) -> <반환값 타입> {
// function code
}
func sayHello() {
print("Hello")
}
리턴값이 없으면(-> Void
) 지정하지 않아도 된다
함수의 자료형
func add(x: Int, y: Int) -> Int {
return(x+y)
}
add(x:10, y:20)
add
함수의 자료형은 print(type(of:add))
(Int, Int) -> Int
이다
내부매개변수명, 외부매개변수명
- 외부매개변수명(argument lable)
- 내부매개변수명(parameter name)
func add(first x: Int, second y: Int) -> Int
return(x+y)
}
add(first:10, second:20)
// add(x:10, y:20)은 오류
func
함수이름
(외부매개변수명
내부매개변수명``:
자료형
)
first, second : 외부 매개변수명
x, y
: 내부 매개변수명
func add(x: Int, y: Int) -> Int {
return(x+y)
}
add(x:10, y:20)
다음과 같이 외부 매개변수명을 생략하면 내부 매개변수명이 외부 매개변수명까지 겸함
func add(_ x: Int, _ y: Int) -> Int {
return(x+y)
}
print(add(10, 20))
// 외부매개변수명 생략 가능
func add(_ x: Int, with y: Int) -> Int {
return(x+y)
}
print(add(10, with:20))
// 첫번째 외부매개변수명만 생략하는 경우 많음
// 두번째 매개변수부터는 외부매개변수 사용
// 제일 많이 쓰는 방법
#function
리터럴(literal)
Swift 함수명
함수명(외부매개변수명:외부매개변수명: ...)
#function 리터럴을 사용하여 얻을 수 있음
func add(first x: Int, second y: Int) -> Int {
print(#function) // add(first:second:)
return(x+y)
}
output
add(first:second:)
아래 함수에서 #function
의 출력결과는 무엇일까?
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
첫 번째 parameter에서 외부 매개변수명을 생략했기 때문에 tableView(_:numberOfRowsInSection:)
라고 할 수 있다
댓글