-
스위프트의 데이터 타입
var x = 20 // x : int 생략가능 =위와 같이 초깃값이 있을 경우에는 컴파일러가 타입 추론(type inference)을 하므로 이터 타입을 명시할 필요 없음 x = 10 // ‘=’ 양쪽에는 동일한 공백을 사용해야 오류가 발생하지 않는다. print(x) // 결과 값 = 10
-
함수 [print]
print("A", "B", "C", "D", "E", separator: "..") // print 함수에 ‘,’를 활용해서 한번에 여러개 출력가능하다. for n in 1...5{ // separator: ".." 출력 하려는 문자 중간에 원하는 문자 삽입기능 print(n, terminator: " ") // terminator: " " 포문의 기본형인 개 행이 아닌 하나의 문자열로 인식하게 해주는 기능 }
-
자료형의 종류와 크기
var x = 10 print(type(of:x)) //type(of:x) 변수의 타입을 확인하기위한 명령어 let y = MemoryLayout.size(ofValue: x) //변수의 바이트 크기를 구하기 위한 명령어 let z = MemoryLayout<Int>.size //<자료형> 자료형의 크기를 직접 구하기 위한 명령어 print(y, z) //print를 사용해 변수의 크기를 출력하는 방법과 명령어를 직접적으로 대입해서 바로 출력하는 방법이 있다. print(MemoryLayout.size(ofValue: x)) print(MemoryLayout<Float>.size)
- 일반적으로 초깃값을 주지 않을 경우에만 자료형을 씀
- 정수 데이터 타입 : Int
- 정수(소수점이 없는 수)를 저장하는 데 사용
-
Int 데이터 타입은 해당 코드가 실행되는 플랫폼에 맞는 정수 크기를 사용
print("Int32 Min = \(Int32.min) Int32 Max = \(Int32.max)") // \ = (출력하고 싶은 변수나 상수)
-
부동 소수점 데이터 타입 /부울 데이터 타입
- Double = > 64비트로 부동 소수점 수를 저장, 소수점 15자리 정확도
- Float = > 32비트로 부동 소수점 수를 저장, 소수점 6자리 정확도
- Bool = > 참 또는 거짓(1 또는 0) 조건을 처리할 데이터 타입 (데이터 타입을 처리하기 위해 값(true/false) 사용)
- 문자 데이터 타입 : Character
- 문자, 숫자, 문장 부호, 심볼 같은 유니코드(Unicode) 문자 하나를 저장
- 스위프트에서의 문자들은 문자소 묶음(grapheme cluster)의 형태로 저장
var hoChar1 : Character = "X" // : Character 생략불가, 생략하면 String형으로 인식한다. 초깃값은 작은 따옴표가 아니고 큰 따옴표
- 문자, 숫자, 문장 부호, 심볼 같은 유니코드(Unicode) 문자 하나를 저장
- 문자열 데이터 타입 : String
- 단어나 문장을 구성하는 일련의 문자를 나타내는 데이터 타입이며 저장, 검색, 비교, 문자열 연결, 수정 등의 기능을 포함한다.
- 문자열 보간(string interpolation)을 사용하여 문자열과 변수, 상수, 표현식, 함수 호출의 조합으로 만들 수도 있다
var userName : String = "Shin" // : String 생략하는 것이 일반적이다.
- 단어나 문장을 구성하는 일련의 문자를 나타내는 데이터 타입이며 저장, 검색, 비교, 문자열 연결, 수정 등의 기능을 포함한다.
- 특수 문자/이스케이프 시퀀스
-
표준 문자 세트뿐만 아니라 문자열에 개행, 탭, 또는 유니코드 값과 같은 항목을 지정할 수 있는 여러 특수 문자가 있다
ex) 이스케이프 시퀀스(escape sequence)
※특수 문자들은 역슬래시를 접두어로 하여 구별
-
스위프트에선 유니코드 구분가능하다.
\u{nn} ― nn 위치에 유니코드 문자를 표현하는 두 개의 16진수가 배치되는 1바이트 유니코드 스칼라
-
- 변수(var) VS 상수(let)
- 변수(var) = 변수에 할당된 값은 변경 가능하다
- 상수(let) = 어떤 값이 한번 할당되면 이후에 변경될 수 없다
- 애플은 코드의 효율성과 실행 성능을 높이기 위해서 변수(var)보다는 상수(let)를 사용하라고 권장
-
타입 어노테이션과 타입 추론
var userCount : Int = 10 // : Int처럼 변수 또는 상수가 코드 내에서 선언되는 것이 타입 어노테이션이다. var userCount = 10 // 선언부에 타입 어노테이션이 없으면 스위프트 컴파일러는 상수 또는 변수의 // 타입을 식별하기 위해 타입추론을 한다.
- 튜플(Tuple)
- 여러 값을 하나의 개체에 일시적으로 묶는 방법 이며 함수에서 여러 값들을 한 번에 반환하는 것이다.
- 저장된 값들이 모두 동일한 타입이어야 한다는 제약도 없다
let hoTuple = (10, 12.1, "Hi") // 항목들은 어떠한 타입도 될 수 있다. let HoTuple = (count: 10, length: 12.1, message: "Hi") // 생성할 때 각 값에 이름을 할당할 수도 있다 var hoString = hoTuple.1 print(hoString) //12.1 // 변수 설정 후 변수를 불러오며 출력가능 print(HoTuple.2) //Hi // 변수의 위치로 출력가능 print(myTuple.message) //Hi // 값의 이름으로 출력가능
※ var (myInt, , myString) = myTuple // ‘’ 사용시 값 무시 = 부동 소수점 수 무시
- 여러 값을 하나의 개체에 일시적으로 묶는 방법 이며 함수에서 여러 값들을 한 번에 반환하는 것이다.