Seul Lee

Mathpresso 서버 개발자

Navigation
 » Home
 » Github
 » XML Feed

Swift 01, 변수

08 Feb 2017 » others

환경은 macOS Sierra, Swift 3.0

Swift 3.0을 공부하면서 정리한 내용


1. Data Type

Swift는 Object-C를 기반으로 하고 있지만 Obejct-C와는 조금 다르게 설계되었다. 일반적으로 인스턴스는 클래스가 메모리상에 할당된 것을 말하지만 Swift에서는 클래스에서 만들어진 객체뿐아니라 정수, 구조체 등을 모두 인스턴스라고 한다.

Swift에는 Value type과 Reference type의 두가지로 데이터 타입을 나눈다. Value type은대입시 복제되어 연산이나 기타 다른 처리에 의해 값이 변하더라도 기존에 복제했던 값을 변화시키지 않는다. Reference type은 이와 반대로 대입 시에 복제되지 않아 기존의 데이터에도 영향을 미친다.

1.1 정수형, 실수형

정수형에는 부호가 있는 Int형과 부호가 없는 UInt형이 있고 각각 16, 32 64비트의 데이터 타입이 존재한다. (Int16, Int32, Int64, UInt16, UInt32, UInt64)

실수형에는 Float형과 Double형이 존재하며, Double형이 Float형에 비해 정확도가 높다. (Float은 7자리, Double은 15자리)


1.2 논리형, 문자형, 문자열형

논리형은 Bool형이 존재하는데 다른 언어와 마찬가지로 true/false만을 상수로 이용한다. Swift에서 조건 판단시에 Bool형의 true/false만을 사용한다.

문자형은 Character형과 UnicodeScalar형이 존재한다. Character형은 유니코드 한 문자를 표현하는 형이며, UnicodeScalar형은 유니코드 문자 코드를 표현하기위해 사용된다.

문자열형은 String이 있으며, Value type이다. Swift에서는 내용 변경이 가능하다.


1.3 변수와 상수

Swift에는 다른 언어와 동일하게 변수와 상수가 있다. 변수는 초기값을 설정한 이후에도 값을 변경할 수 있는 것을 말하고, 상수는 한번 입력 받은 초기값을 변경하지 못한다. 프로그램 내부에서 계속해서 동일하게 사용되어질 값은 상수로 정의하는 것이 좋다.

var year : Int = 2017 
var year = 2017 # Int와 같은 형은 생략 가능하다. 컴파일러가 추론하여 결정
year = 2018 # var로 선언한 변수는 변경이 가능하다.

변수는 선언시에 반드시 초기화해야하며, Swift에서는 형 추론을 하기때문에 데이터 타입을 생략할 수 있다.

let language : String = "Swift"
let name = "seul lee" # 변수와 마찬가지로 형은 생략 가능

상수는 let이라는 키워트를 통해 선언할 수 있다. 선언 시에 초기값을 지정해야하며, 변경이 불가능하다.


1.4 형 변환

Swift에서는 암묵적인 형 변환이 이루어지지 않기때문에 형을 변환하기 위해서는 명시적으로 해주어야한다. 또한 명시적 형 변환이 없다면, Int와 UInt, Float과 Double 사이에서의 대입과 단순 계산이 불가능하다.


값을 대입할 시에는 실수형과 정수형을 계산해도 에러가 발생하지 않을 때가 존재하지만 지금은 없는 걸로 생각한다.