아요 개발 일기
[Swift] 타입 추론(Type inference)과 타입 어노테이션(Type annotation) 본문
반응형
안녕하세요 소진입니다!
오늘은 타입 추론과 타입 어노테이션에대해 알아보도록하겠습니다!
이 글을 꼼꼼한 재은씨의 Swift : 문법편을 참고하여 작성하였습니다 :-)
타입 추론 (Type inference)
변수나 상수를 초기화할 때 입력된 값을 분석하여 변수에 적절한 타입을 컴파일러가 스스로 추론하는 기능입니다.
var age : Int = 30;
var age = 30; // Int 타입으로 추론
Q. 그럼 항상 타입 추론을 사용하면 편하지 않나요???
A. 타입 추론은 타입을 완벽하게는 읽지 못하기때문에 타입을 명시적으로 선언해야 할 때가 많습니다.
예를 들어, 아래 코드를 보면 Float형을 원했지만 Double형으로 추론 된 것을 볼 수 있습니다.
var num = 0.5 // Float형 변수를 선언하고 싶었지만 타입 추론기는 Double형으로 타입을 추론
var num1 = 1 // Int 타입추론
var num2 : Float = 2 // Folat 타입으로 "2.0"이 출력
타입 어노테이션 (Type annotation)
변수나 상수를 선언할 때 그 타입을 명시적으로 선언해 줌으로써 어떤 타입의 값이 저장될 것인지를 직접 알려줌으로써 어떤 타입의 값이 저장될 것인지를 컴파일러에 직접 알려줍니다.
- 선언 : 변수 / 상수 이름 : 타입
// 선언 + 타입 어노테이션
var year : Int // 명시적 Int
var name : String // 명시적 String
// 초기화
name = "sojin"
var year : Int = 2020
var name : String = "소진"
Q. 타입 어노테이션 언제 사용되나요?
- 선언과 초기화를 분리할 경우 ( 상수는 분리 불가능)
- 타입 추론으로 얻어지는 타입이 아닌, 다른 타입을 직접 지정할 필요가 있는 경우
이 두 가지 경우를 제외한 나머지는 타입 어노테이션을 생략하고 타입 추론에 의존하면 됩니다.
이렇게 오늘은 Type inference와 Type annotation에 대해 설명해 보았습니다 :-)
이번 포스팅의 포인트는
타입을 지정하지 않아도 타입 추론에 의해 타입을 얻어낼 수 있지만,
오류가 날 수 있는 타입은 타입 어노테이션을 사용하여 타입을 직접 지정하는게 좋다!!
인 것 같습니다ㅎㅎ
반응형
'Swift > Grammar' 카테고리의 다른 글
[Swift] guard(feat. if문) & assert (0) | 2022.12.30 |
---|---|
[Swift] Optional ( 옵셔널 ) (0) | 2022.12.30 |
[Swift] 반복문 (Loop Statements) - For 문, While 문 (0) | 2022.12.30 |
[Swift] Any와 AnyObject (0) | 2022.12.30 |
[Swift] 집단 자료형 - Array, Dictionary, Set , Tuple (0) | 2022.12.30 |