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