안녕하세요~ 차니에요!
오늘은 함수에 대해서 알아보도록 하겠습니다.
1. 함수 vs 메서드
시작에 앞서 헷갈릴 수 있는 용어부터 정리하고 가겠습니다.
함수(function) : 독립적인 기능을 수행하는 코드 단위
메서드(method) : 클래스, 구조체, 열거형에 포함되어 있는 함수, 클래스 함수라고도 부른다.
함수가 더 포괄적인 의미이므로 함수라는 용어로 포스팅 진행하겠습니다!
2. 함수 선언 방법
func name(parameters) -> Return Type {
// Code...
}
함수 선언은 func 키워드로 이루어집니다.
2-1. 함수 이름
코딩 컨벤션에 맞추어 lowerCamelCase로 작성합니다.
lower는 소문자를, camel은 낙타를 뜻하는데 낙타의 등 모양을 연상해서 붙은 이름입니다.
아래 자주 사용되는 네이밍 컨벤션을 참고 삼아 적어두었습니다.
Lower camel case | Upper camel case | Snake case |
getMyFavoriteMusic | GetMyFavoriteMusic | get_my_favorite_music |
2-2. 파라미터
func wait(for time: Int) {
print("wait for \(time)")
}
wait(for: 10) // wait for 10
인자는 함수 이름 뒤의 괄호 안에 콤마(,)로 구분하여 n개 이상 사용할 수 있습니다.
여기서는 크게 3가지를 눈여겨 보시면 됩니다.
- Argument Label : 함수 호출 시 사용될 이름 (for)
- Parameter Label : 함수 내에서 사용될 이름 (time)
- Type : 인자의 자료형 (Int)
func wait(time: Int) {
print("wait for \(time)")
}
wait(time: 10) // wait for 10
Argument Label은 필수가 아닌 선택으로 정의하지 않고도 사용할 수 있습니다.
Parameter Label을 입력하여 호출하면 됩니다.
func wait(_ time: Int) {
print("wait for \(time)")
}
wait(10) // wait for 10
Argument Label 자리에 언더바(_)를 입력해주면 Argument Label을 생략하여 호출할 수 있게됩니다.
이를 와일드 카드 패턴이라 합니다.
2-3. 반환 타입
func wait(_ time: Int) -> String{
return "wait for \(time)"
}
print(wait(10))
함수의 반환 타입을 파라미터 괄호 뒤에 -> Return Type의 형태로 입력해줍니다.
예제에서는 String Type을 반환한 모습입니다.
func wait(_ time: Int) -> Void {
print("wait for \(time)")
}
func wait(_ time: Int) -> () {
print("wait for \(time)")
}
func wait(_ time: Int) {
print("wait for \(time)")
}
반환 값이 없을 때의 반환 타입은 아래 3가지 방식 중 하나를 사용할 수 있습니다.
- Void
- ()
- 생략 (2-2 예제에서 생략하여 사용했던 모습을 볼 수 있습니다.)
다음 시간에는 응용이라 하기는 애매한 조금 더 디테일한 부분을 확장편으로 알아보도록 하겠습니다!