Swift 데이터 타입01
* 스스로 공부 및 정리를 위해 The Swift Language Guide을 요약 및 정리 한 내용입니다.
01. 상수와 변수
- 기본적인 상수 let과 변수var가 있다
- let 혹수 var는 추정되지 않기때문에, 변수 선언시 작성 해주어야한다.
var x = 10 x = 20 let y = 1 y = 2
오류가 생기는 코드이다. 이를 알기위해선 아래 var와 let의 차이를 알아야한다
var
- var는 프로그램에서 사용될 데이터를 저장 하기 위한 메모리 내의 명명된 공간을 제공한다
- 변수에 할당된 값은 변경 가능, 초기화 할 수도 있다
let
- let는 프로그램에서 사용될 데이터를 저장하기 휘한 메모리 내의 명명된 공간을 제공 한다는 점이 var와 비슷하다.
- 어떤 값이 한번 할당되면 이후에 변경할 수 없다.
- let은 코드 내에서 반본적으로 사용되는 값이 있을 경우에 유용하다.
- 코드내에서 반복적으로 사용되는 특정 값을 매번 사용하는 것보다, 그 값을 상수에 할당한 다음 코드 내에서 참조하면 코드 읽기가 더 쉬워진다.
- 나중에 값을 할당할수도 있다
let petName: String var cat = true if cat{ petName = "kitty" } else { petName = "null" }
- 애플은 코드의 효율성과 실행 성능을 높이기 위해서 변수보다는 상수를 사용하라고 권장한다.
02. 데이터타입
Int: 정수형 데이터타입
- 정수(소수점이 없는 수)를 저장하는데 사용한다.
- 8비트, 16비트, 32비트 64비트 정수를 지원한다(Int8, Int16, Int32, Int64)
- 부호없는 정수(UInt8,UInt16,UInt32,UInt64)를 지원한다
- 애플은 특정 크기의 데이터 타입보다 Int데이터 타입을 권장한다.
- Int데이터 타입은 해당 코드가 실행되는 플랫폼에 맞는 정수 크기를 사용한다.
- 32비트 부호 있는 정수데이터 타입에 대한 최솟값과 최댓값을 출력한 것이다. 이렇게 직접 코드를 통해 확인할수 있다.
print("Int32 Min = \(Int32.min) Int32 Max = \(Int32.max)")
Double, Float: 소수(부동소수점)형 데이터타입
- 소수점이 있는 숫자
- Float과 Double이 존재한다
- Float은 32비트, 6자리 정확도를 가진다
- Double은 64비트, 15자리 정확도를 가진다
- 선언이 없다면, 기본적으로 Double이 기본추정 된다.
let pi = 3.14159
let anotherPi = 3 + 0.14159
print(ype(of:pi),type(of:anotherPi))
Bool: 참거짓 데이터타입
- 참 또는 거짓(1 또는 0)조건을 처리할수 있는 데이터 타입이다.
- Boolean 데이터 타입을 처리하기 위하여 두 개의 Boolean 상수 값을 사용한다.
- 초기값은 true가 적용된다. Bool은 일반적으로 생략한다
03.문자열과 문자(Strings and Characters)
Charactor: 문자데이터타입
- 문자,숫자,심볼,문장부호같은 유니코드 문자 하나를 저장
- 따로 선언을 해줘야한다.
- 선언이 작은 따옴표(‘)가 아니라 큰따옴표(“)라서, 따로 선언하지 않으면 아래 이야기 할 String이 초기값이 된다.
- 아래 처럼 Charactor로 선언 해주지 않으면, String이 된다. C#처럼 작은 따옴표를 써봤자 오류가 난다.
let mause: Character
mause = "m"
print(mause)
print(type(of: mause))
String: 문자열타입
- String은 Foundation 프레임워크의 NSString이 bridge된 타입이기 때문에 NSString의 메소드를 캐스팅없이 사용 가능하다.
- 단어나 문장을 구성하는 일련의 문자열이다.
- 저장, 검색, 비교, 문자열연결, 수정 등의 기능을 포함한다.
- 단순 연산자를 통해 문자열과 문자, 문자열과 문자열을 결합 할 수 있다.
- 문자열 보간(String Interpolation)을 사용하는 문자열과 변수, 상수, 표현식, 함수 호출의 조합으로 만들 수도 있다.
var catName = "kitty"
var age = 5
var cat = "\(catName)의 나이는 \(age)입니다."
print(cat)
- 문자열은 큰 따옴표(“)로 묶어 표한 한다.
- 여러줄 문자열 리터럴
- 여러줄의 문자열 즉 문단 이상을 사용하고 싶은 경우 큰 따옴표 3개(“”“)로 묶어서 사용할수 있다.
- 여러줄 문자열 리터럴을 사용할 때는 첫 시작의 “"”의 다음줄부터 마지막 “"”의 직전까지를 문자열로 봅니다.
- 여러줄 문자열을 사용하여 줄바꿈을 하고 싶다면 백슬래쉬를 사용합니다.
- 문자열의 시작과 끝에 각각 빈줄을 넣고 싶다면 한 줄을 띄어서 문자열을 입력하면 됩니다
- 들여쓰기의 경우, 들여쓰기 기준은 뒤에있는 “"”의 위치입니다.
let catDream = """
this cat try to move other place for kitty. \
but kitty doesn't have enough time to find safty place.
"""
- String형은 특수 문자를 사용 할 수 있습니다.
- 문자열의 개별 문자를 for-in loop을 사용해서 접근 할 수 있습니다.
for char in "Cat!"{
print(char)
}
- 문자 배열을 이용해 문자열의 초기화 메소드에 인자로 넣어 문자열을 생성 할수 있다.
let cat: [Character] = ["c", "a", "t"]
let catSpelling = String(cat)
print(catSpelling)