- \(변수 또는 상수)를 문자열에 삽입하여 바로 출력 가능
소수점 표현 방식
컴퓨터가 실수를 표현할 때에는 2진수를 사용한다. 예를 들어, 0.75의 경우 0.5+0.25 이므로 이진법으로 0.11로 표현 가능하다. 하지만 263.3이나 0.3 같은 경우는 2진수로 표현 할 수 없고, 이런 경우 컴퓨터에서 표현할 수 있는 방법에는 두가지가 있다. 부동 소수점을 표현하는 방식도 정하는 방식에 따라 다를 수 있지만 일반적으로 IEEE에서 표준으로 제안한 방식을 따른다.
부동소수점(floating point):
0.1234는 여러가지 방식으로 표현 가능하다.
0.001234 * 10^2
0.01234 * 10^1
0.1234 * 10^0
1.234 * 10^(-1)
이 때, 10진법이므로 고정되어있는 10 부분을 기수, 10의 거듭제곱을 나타내는 수를 지수, 앞에 소수부를 가수라고 부른다. 위의 표현 방식처럼, 소수점의 위치가 움직이는 것을 ''떠다닌다(floating)'이라고 표현하며 부동 소수점이라고 한다.
고정소수점(fixed point):
부동소수점과 다르게 위의 예시에서 0.1234라고 표현, 즉 10진법이지만 10의 거듭제곱으로 표현하는 것이 아니라 0.1234라고 표현하면 소수점이 움직일 방법이 없고 이런 경우를 고정소수점 표현이라고 한다.
- 문자 타입과 문자열 타입으로 모두 유니코드와 큰 따옴표("")를 사용한다.
Any
Any 타입으로 선언된 변수에는 어떤 타입의 데이터든 넣을 수 있다.
하지만 예를 들어, Any 타입으로 선언된 변수에 Int값을 넣는다고 Any 타입이 Int로 변환되는 것은 아니므로 그 변수 자체를 다시 Int로 선언된 변수에 할당하는 것은 불가능하다. 즉, let intNumber: Any = 10 을 let target: Int = intNumber로 사용할 순 없다.
let intNumber: Any = 10
let target: Int = intNumber (compile error 발생)
AnyObject
nil
Array
index를 활용하여 데이터에 접근할 수 있는 리스트 형태의 컬렉션 타입
Array<타입>이나 [타입]으로 선언
var integers: Array<Int> = Array<Int>()
var integers: Array<Int> = [Int]()
var integers: Array<Int> = []
var integers: [Int] = Array<Int>()
var integers: [Int] = [Int]()
var integers: [Int] = []
var integers = [Int]()
여러가지 리터럴 문법 활용 가능
리터럴(Literal): 저장되는 데이터 그 자체를 의미한다. let PI: float = 3.14 의 경우 3.14가 리터럴이 된다.
Dictionary
key : value 의 구조로 이루어진 컬렉션 타입
swift의 dictionary 구조는 정의된 순서가 없다.
var anyDictionary: Dictionary<String, Any> = [String: Any]() // 타입을 명시할 경우 () 필요
var anyDictionary: Dictionary <String, Any> = Dictionary<String, Any>()
var anyDictionary: Dictionary <String, Any> = [:]
var anyDictionary: [String: Any] = Dictionary<String, Any>()
var anyDictionary: [String: Any] = [String: Any]()
var anyDictionary: [String: Any] = [:]
var anyDictionary = [String: Any]()
Set
중복이 없고 순서가 없는 컬렉션
Set은 Array나 Dictionary와 다르게 [], [:] 처럼 축약형으로 정의가 불가능하다.
var integerSet: Set<Int> = Set<Int>()
func 함수이름(매개변수: 매개변수 타입 ...) -> returnType {
/* 함수 구현부 */
return returnValue // 반환값이 존재할 시
}
parameter에 default값 넣기
func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 = 매개변수 기본값 ...) -> 반환타입 {
/* 함수 구현부 */
return 반환값
}
func introduce(greeting: String, me: String = "Jay") {
print("\(gretting) I'm \(me)")
}
parameter에 label하기
func 함수이름(전달인자 레이블 매개변수1이름: 매개변수1타입, 전달인자 레이블 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
/* 함수 구현부 */
return
}
입력될 매개변수의 크기가 확정되지 않을 때
func 함수이름(매개변수1이름: 매개변수1타입, 전달인자 레이블 매개변수2이름: 매개변수2타입...) -> 반환타입 {
/* 함수 구현부 */
return
}
func greetToFriends(me: String, friends: String...) -> String {
return "Hello \(friends)! I'm \(me)!" // friends는 array로 입력된다.
}
데이터 타입으로서의 함수
일급객체(First-class Object): 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체
Swift에서 함수는 일급객체이므로 parameter로서 활용될 수 있다.
Reference:
- iOS 프로그래밍을 위한 스위프트 기초 by 야곰
- http://www.tcpschool.com/cpp/cpp_datatype_floatingPointNumber