iOS
Swift ;; 함수(Function)
may_wonhui
2022. 4. 22. 20:07
[ 함수의 정의 ]
함수란 특정 작업을 수행하기 위한 자체적인 코드 덩어리이다.
함수는 func 키워드로 선언한다.
- 함수와 메서드의 차이
- 메서드(method): 특정 타입과 관련된 함수. 클래스, 구조체, 열거형 내부에 선언된 함수를 메서드라고 한다.
- 즉, 함수 > 메서드
func functionSample {
print("This is function")
}
class SampleClass {
func methodInClass {
print("This is method")
}
}
struct SampleStruct {
func methodInStruct {
print("This is method")
}
}
[ 함수의 구성 ]
func functionName(parameters) -> ReturnType {
...
}
- 함수 이름(functionName) 은 lowerCamelCase 규칙에 따른다.
func lowerCamelFunc() {
print("function names follow lowerCamelCase")
}
- 매개변수(parameters)의 구성 >>> (ArgumentLabel ParameterName: Type)
- 전달인자 레이블(Argument Label): 함수 외부에서 함수 호출 시 사용하는 매개변수 이름 > _로 생략 가능
- 매개변수 이름(Parameter Name): 함수 내부에서 사용하는 매개변수 이름
- 타입(Type)
func parameterTest(arLabel paraName: String) {
print("In here, \(paraName) is called")
}
parameterTest(arLabel: "ArgumentLabel")
/*Argument Label 생략 가능: _ 사용*/
func arLabelOmitTest(_ paraName: String) {
print("\(paraName)")
}
arLabelOmitTest("Argument Label can be omitted") //외부에서 함수 호출 시 Argument Label 생략함
/*Argument Label과 Parameter Name 동시 선언 가능 > 하나만 선언하면 된다!*/
func paraTest(arLabelAndParaName: String) {
print("This is \(arLabelAndParaName)")
}
paraTest(arLabelAndParaName: "Argument Label and Parameter Name")
/*Parameter 없을 시에는, 빈 괄호 사용*/
func noParameter() {
print("No parameter is needed in this function")
}
/*가변 매개변수 - 매개변수 확장 가능*/
func variadicPara(paraNames: String...) {
print("\(paraNames)")
}
variadicPara(paraNames: "p1", "p2", "p3") //["p1", "p2", "p3"]
variadicPara(paraNames: "first", "second") //["first", "second"]
- 함수의 반환 타입(Return Type)
- 형식: -> 타입
func returnTest(para: Int) -> Int {
return para
}
print(returnTest(para:5))
/*반환 타입이 없을 경우 -> Void (생략 가능)*/
func noReturnForm(para: Int) -> Void {
print("\(para)")
}
noReturnForm(para: 100)
/*위의 함수와 같이 반환값이 없는 함수*/
func noReturnOmitted(para: Int) {
print("\(para)")
}
noReturnOmitted(para: 50)
https://docs.swift.org/swift-book/LanguageGuide/Functions.html