자료형을 명확하게 정의해야 하는 이유
- 결합 연산을 처리하기 위해선 양쪽 값이 어느 한쪽의 타입으로 통일되어야 함
- 문자에 대한 결합 연산 : 문자열을 이어 붙이는 것
- 숫자에 대한 결합 연산 : 두 수를 더하는 것
- 문자와 숫자를 결합 연산으로 수행하는 경우 오류로 처리
- 값의 종류가 일치해야만 그에 맞는 처리가 가능
- 문자냐 숫자냐의 차이에 따라 준비해야 할 메모리 공간의 크기가 달라져야 함
기본 자료형
- Int : Integer, 정수
- Double, Float : 실수(부동소수점), Double(64bit) > Float(32bit)
- Bool : 논리값(참/거짓)
- String : 문자열, 큰따옴표(")를 사용해서 표현
- Character: 한 개의 문자를 저장할 수 있는 단일 자료형, String 타입에 저장된 문자열을 하나씩 분해하면 Character
Type annotation and Type Inference
Type annotation
- 변수나 상수를 선언 시 그 타입을 명시적으로 선언해 줌으로써 어떤 타입의 값이 저장될 건지 컴파일러에 직접 알려주는 것
var year : Int // 명시적인 Int 타입
var name : String // 명시적인 String 타입
Type Inference
- 변수나 상수를 초기화할 때 입력된 값을 분석하여 변수에 적절한 타입을 컴파일러가 스스로 추론하는 기능
var year = 2024 // Type Inference를 통해 Int 자료형임을 컴파일러가 추론
Type annotation 을 사용해야 하는 경우
1. 선언과 초기화를 분리할 경우
2. 다른 타입을 직접 지정할 필요가 있을 때
var temper 1 = 3 // 컴파일러에서는 Int로 처리
var temper 2 : Float = 3 // 컴파일러에서는 Float로 처리(3.0)
타입이 다른 변수끼리의 결합
var stmt = "졸린 마토의 키는"
var height = 171
var heightstmt = stmt + String(height)
// "졸린 마토의 키는 171"
- String(), Int()
- 기존의 변수를 문자열 또는 정수 타입으로 바꾸는 것이 아니라 새로운 문자열 또는 정수형 인스턴스를 생성함
- 문자열을 정수로 변환할 때는 문자열 자체가 정수로 변환 가능한 값이어야 함("123", "100")
문자열 템플릿
- \(변수명 또는 리터럴)
var apple = 1
var orange = 2
var melon = 3
var desc = "과일은 총 \(apple+orange+melon)개 입니다."
print(desc)
// 과일은 총 6개 입니다.
Quoting
- 문자열을 따옴표로 묶어서 표시하는 방법
- swift에서 여러 줄의 문자열을 처리할 경우 Multi-line String 또는 Triple Quoting 을 사용
let = """
아유 넘 졸립지만
그래도 나는 오늘
회고록까지는 쓰고 잔다
정처기 실기도 해낸다
"""
// python과 비슷한 형태
// 자동으로 줄바꿈이 됨
[Day5] 흐름 제어 구문(3) : Control Transfer Statements (0) | 2024.04.10 |
---|---|
[Day4] 흐름 제어 구문(2) : Conditional Statements(Branch Statements) (0) | 2024.04.09 |
[Day3-2] 흐름 제어 구문(1) : Loop Statements (0) | 2024.04.08 |
[Day3-1] Operator (0) | 2024.04.08 |
[Day1] Variables and Constants (1) | 2024.04.06 |
댓글 영역