함수

냐옹·2024년 7월 12일
0

IOS

목록 보기
21/32
  • 함수 안에 함수를 선언할 수 있다.
func outer(){
	print("outer")
	
  	func inner(){
    	print("inner")
    }
  
  	// 여기
  	inner()
}
  • outer함수 내부에서 inner를 실행할 수 있지만
  • outer함수 외부에서 inner를 실행할 수 없음
  • 상수/변수에 함수 대입
func testFunc(){}

let test = testFunc

이렇게 해도 되지만
이런 경우가 있을 수 있음 (오버로딩하는경우)

func testFunc(name : String){}
func testFunc(_ name : String{}

//이경우에
let test = testFunc // 에러

// 따라서 아예 항상 이렇게 해주도록 한다.
let test2 = testFunc(name:)

*여기에서 주의해야할 점은 이렇게 test2에 저장한 함수와 같이 상수에 저장한 함수를 호출할때는

test2(name : "Johnson") 

이렇게 할 수 없다. 함수만을 가져갔지 인자라벨까지 가져가진 않았기 때문이다.

  • 함수의 반환타입으로 함수를 사용할 수 있음
func outer() -> ( () -> () ){
	func inner(){}
	return inner
}
  • 함수의 파라미터로 함수를 전달할 수 있다.
    보통 콜백함수에서 이런 경우가 많다.
  • 함수를 배개변수로 받을 경우에
func doSomething(_ callback : () -> () ) {
	callback()
}
  1. 함수로 넘겨주기
func success(){ print("Success") }

doSomething(success)
  1. 클로저 unnamed Closure로 넘겨주기
doSomething{
	print("success")
}

출처 : https://babbab2.tistory.com/79

0개의 댓글