관리 메뉴

사과하는 제라스

[Swift 문법] class func와 static func 본문

제라스의 iOS 공부/Swift 문법

[Swift 문법] class func와 static func

Xerath(제라스) 2023. 8. 18. 11:02

목차

    728x90
    반응형

    class func와 static func는 기존의 func와 달리 메모리에 올리지 않고서 사용이 가능하다.

     

    즉, 따로 객체를 만들고 해당 객체를 통해서 func를 쓰지 않고 바로 class를 통해 접근이 가능하다.

     

    다음을 보자.

    class Say {
    
    	// class func의 사용
    	class func hello(){
        	print("say hello")
        }
        
        // static func의 사용
    	static func hi(){
        	print("say hi")
        }
    }

     

    엥? 그럼 둘 다 똑같은 거면 왜 따로 씀?

     

    스택 오버플로우에서 검색해본 결과

    이것처럼 static func는 사실상 class func지만 final 즉, 오버라이드가 불가능한 class func다.

     

    이 부분이 둘의 차이이고, 또 다른 정보로는 struct에서는 class func를 못쓰기에 static func를 쓰고 보통 class에서 class func를 쓴다고도 한다.

    728x90
    반응형