반응형

Swift 의 기본 데이터 타입에 대해 이전 포스팅과 이어서  Any, AnyObject 대해서도 공부해보자.




2018/10/21 - [IT 정보 로그캣/Swift] - [Swift 공부]기본 데이터 타입 (자료형) #1




Swift 의 데이터 타입에 대해 공부할 때 참고로 공부해야하는 부분이 있는데 바로 nil 과 Type Aliases 이다.

그래서 이번 포스팅에서 nil과 Type Aliases 부분도 함께 살펴 보았다.



Any 타입


 Any 는 말 그대로 Swift 의 아무(모든) 데이터 타입을 사용할 수 있다는 의미이다. 

타입을 명시하지 않고 그냥 바로 선언해서 사용하는 타입 추론처럼 어떻게 보면 가장 편리할 것 같지만 Any 로 선언된 변수의 값을 가져다 쓰려면 매번 타입 확인과 형 변환을 해야하는 번거로움이 있다. 

그래서  특별한 경우가 아니면 사용하진 않을 것 같다.

 예를들어 < 그림 1 > 과 같이 Any 로 선언한 타입의 값을 아무 조치없이 사용하면 컴파일 에러가 발생한다.

컴파일 에러 내용은 Any 타입에 숫자 100을 넣고 if 문의 조건에 넣었는데 Any 타입과 숫자 100 (Int) 를 비교할 수 없다는 것이다. 

( * Any는 타입을 명시하지 않고 바로 사용하는 Swift 의 타입 추론 과는 다르다.)



그림 1 > Any 타입 사용 예제




AnyObject


 AnyObject 는 모든 클래스의 타입을 지칭할 수 있는 타입으로 클래스의 인스턴스를 지정해 줄 수 있다.  

마찬가지로 AnyObject 도 Any 처럼 사용하는데 있어서 번거로움이 존재하기 때문에 특별한 경우가 아니면 잘 사용하지 

않는게 좋겠다.





nil


  nil 은 변수 또는 상수 에 값이 없음을 의미한다. 자바로 치자면 null 이라고 볼 수 있겠다 :)

값이 없기 때문에 nil 인 변수나 상수를 호출하여 사용하려고 하면 우리가 흔히 겪는 널 포인트 익셉션이 발생한다. 





Type Aliases

 

 Type Aliases 는 우리가 변수에 이름을 지정해서 사용 하듯이 이미 존재하는 데이터 타입에 대해 따로 이름을 지정하여 사용할 수 있는 기능이다. Type Aliases 기능은 Swift 에서 제공하는 데이터 타입 뿐만 아니라 내가 임의로 만든 데이터 타입 등에도 사용할 수 있다.




그림 2 > typealias 를 통해 Int 명칭을 커스텀하여 사용하는 방법
















* 해당 포스팅은 스위프트(Swift)4  버전을 기준으로 하고 있습니다.

* 참고 : https://swift.org/ 


반응형

+ Recent posts