728x90
1. Int와 Unit
Int : - 부터 + 까지 표현
Uint : 0 부터 + 까지표현 (unsigned Integer)
종류 : Int, Int8, Int16, Int32, Int64, Uint, Uint8, Uint16, Uint32, Uint64 (뒤에 붙은건 bit)
* 스위프트는 데이터 타입에 엄격하다. Int와 Uint를 완전히 다른타입으로 인식하기에 값을 교환할때 많은 리소스를 소모 할 수 있으니 보통 Int타입으로 사용하는게 맞다.
let tooLarge: Int = Int.max //.min .max로 최대 최소값을 확인 할 수 있다.
tooLarge = tooLarge + 1 //Int값 초과로 오류.
let decimalInt: Int = 28
let binaryInt: Int = 0b11100 //2진수표현
let octalInt: Int = 0o34 //8진수표현
let hexadecimal: Int = 0x1C //16진수표현
2. Float, Double (실수-부동소숫점타입)
Float : 64비트 환경에서 6자리 숫자까지만 표현 가능
Double : 64비트 환겨엥서 15자리 숫자까지 표현 가능
애매하다 싶으면 그냥 Double형 쓰는게 나음.
* 스위프트4.2부터 임의의수를 만드는 radom(in:) 메서드 추가됨
Int.random(in: -100...100)
UInt.random(in: 1...30)
Double.random(in: 1.5...4.3)
Float.random(in: -0.5...1.5)
3. Bool
값 : true, fasle
var godotHasArrived = false
let numbers = 1...5
let containsTen = numbers.contains(10) //number변수가 10을 포함하냐
print(containsTen)
// Prints "false"
let (a, b) = (100, 101)
let aFirst = a < b
print(aFirst)
// Prints "true"
var i = 5
while i { //i가 Bool타입이 아니기때문에 에러
print(i)
i -= 1
}
while i != 0 {
print(i)
i -= 1
}
4. Character
스위프트는 유니코드9문자를 사용하므로 유니코드에서 지원하는 모든언어및 특수기호까지 사용할 수 있습니다.
let bird: Character = "🐥"
let greeting: String = "Hello! 🐥"
print("Length: \(greeting.count)")
//문자열의 각 문자는 하나 이상의 유니 코드 스칼라 값으로 구성 될 수 있으므로
//문자열의 문자 수는 유니 코드 스칼라 값 표현의 길이
//또는 특정 2 진 표현의 문자열 길이와 일치하지 않을 수 있습니다.
print("Unicode scalar value count: \(greeting.unicodeScalars.count)")
// Prints "Unicode scalar value count: 8"
print("UTF-8 representation count: \(greeting.utf8.count)")
// Prints "UTF-8 representation count: 11"
//Character인스턴스는 확장 된 자소 클러스터 로
//함께 그룹화 된 하나 이상의 유니 코드 스칼라 값으로 구성됩니다 .
let usFlag: Character = "\u{1F1FA}\u{1F1F8}"
print(usFlag)// Prints "🇺🇸"
5. String
유니코드 9사용 가능 값의 앞뒤에 큰 따옴표를 사용하여 표현.
let greeting = "Welcome!"
let name: String = "Rosa"
let personalizedGreeting: String = "Welcome, \(name)!"
// personalizedGreeting == "Welcome, Rosa!"
let price: Int = 2
let number: Int = 3
// 문자열 보간법으로 표현할수 있고 연산도 가능하다.
let cookiePrice = "\(number) cookies: $\(price * number)."
// cookiePrice == "3 cookies: $6."
// + 로 문자열을 합칠수 있다.
let longerGreeting: String = greeting + " We're glad you're here!"
// longerGreeting == "Welcome! We're glad you're here!"
// """로 여러줄 문자열 표현이 가능하다.
// """써주고 한줄 내려서 써야한다. 마지막 줄도 """내려서 써야한다
// 마지막 """ 위치에 따라 들여쓰기가 정해진다.
let banner = """
__,
( o /) _/_
`. , , , , // /
(___)(_(_/_(_ //_ (__
/)
(/
"""
//문자열 요소 접근
let name = "Marie Curie"
let firstSpace = name.firstIndex(of: " ") ?? name.endIndex
let firstName = name[..<firstSpace]
// firstName == "Marie"
print("\(name)'s first name has \(firstName.count) letters.")
// Prints "Marie Curie's first name has 5 letters."
특수문자 | 설명 |
\n | 줄바꿈문자 |
\\ | 문자열 내에서 백슬래시를 표현하고자할때 사용 |
\" | 문자열 내에서 큰따옴표를 표현하고자 할때 사용 |
\t | 탭문자 |
\O | 문자열이 끝났음을 알리는 null문자 |
6. Any , AnyObject와 nil
Any : 스위프트의 모든 데이터 타입을 사용할 수 있다는 뜻
AnyObject : Any보다는 조금 한정된 의미 클래스의 인스턴스만 할당 가능
nil : 없음을 나타내는 스위프트의 키워드 (다른언어에서 null같은 의미)
Any, AnyObject사용시 타입확인 및 변환을 꼭 해줘야한다.
'공부 > SWIFT' 카테고리의 다른 글
[SWIFT] 컬렉션형 - 배열 (Array) (0) | 2021.03.09 |
---|---|
[SWIFT] 튜플(Tuple) - 프로그래머 마음대로 타입 (0) | 2021.03.09 |
[SWIFT] 데이터 타입 특징(타입안심, 타입추론, 타입별칭) (0) | 2021.03.09 |
[SWIFT] 기초(명명규칙, 로그, 주석, 변수, 상수) (0) | 2021.03.05 |
[SWIFT] 특징 (0) | 2021.03.05 |