언어/swift

[swift] 복습2 - Any, AnyObject, nil

플래시🦥 2023. 6. 16.
반응형

Any는  Swift의 모든 타입을 지칭하는 키워드이다. 

데이터 타입이 Any로 지정된 변수에는 어떤 값도 대입할 수 있다. 

var someAny :Any = 10
someAny = "뭐"
someAny = 10.23

 

AnyObject는  모든 클래스 타입을 지칭하는 프로토콜이다. 

모든 "변수"를 지칭하는 키워드가 Any라면 모든 "클래스"타입을 지칭하는 것은 AnyObject인 것이다. 

예를 들어 someclass1()과 someclass2() 두 개의 클래스가 있을 때 

var someObject :AnyObject = SomeClass1()
someObject = SomeClass2()

Any에서 어떤 타입의 값도 대입할 수 있었던 것처럼 어떤 클래스 타입도 저장할 수 있다.

 

nil은 '없음'을 의미하는 키워드이다. 

그런데 여기서 기억해야 할 것은 Any와 AnyObject가 모든 타입의 값을 할당할 수 있다고 했지만 그렇게 선언된 변수에 nil을 할당할 수 없다. 

할당을 하기 위해서는 ?가 필요하다.

var nuse : Int? = nil

위처럼 사용할 수 있는데, ?는 nullable 하다는 것이다. 즉, 해당변수를 비어 있을 수 있다는 의미이다. 

print 해주면 nil이라고 콘솔에 출력된다. 

 

 

아직 기초 공부를 시작하는 부분이라 많은 것을 알지는 모르지만, 변수의 선언 방식에 있어서 스위프트는 코틀린과 유사한 점이 많은 것 같다. 

 

728x90
반응형

댓글