반응형
Swift의 기본 데이터 타입 부분입니다. 본 게시글은 야곰 님 블로그를 참고하여 작성되었습니다.
데이터 타입 기본
스위프트에서는 함수 , 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스를 (Lower Camel Case) 사용합니다.
클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는
대문자 카멜케이스(Upper Camel Case)를 사용합니다.
대소문자를 구별합니다 Let , let를 다르게 인식합니다.
1. Int와 UInt
Int는 +,- 를 포함한 정수를 말하고 UInt는 -를 포함하지 않는 양의 정수를 표현합니다.
var someInt: Int = -10
someInt = 100
var someUInt:UInt = 10
someUInt = 1
Int.random(in: -100...100) // 범위 내의 임의의 숫자 만들기
someInt = someUInt // 에러 스위프트에서 Int와 UInt는 다른 타입 값을 할당할 수 없다
2. Bool
Bool은 불리언 타입입니다. 불리언 타입은 참(true) 또는 거짓(false)만 값으로 가집니다.
var boolean: Bool = true
boolean.toggle() // false -> ture
let MyNameIsKyuu: Bool = true
let MyNameIsJeng: Bool = false
print("제 이름은 규 가 맞습니까? : \(MyNameIsKyuu)") /// true
print("당신의 이름은 정 입니까? : \(MyNameIsJeng)")// false
3. Float, Double
Float 타입은 64비트 환경에서 6자리의 숫자까지만 표현이 가능합니다
var someFloat: Float = 1234567890.1
someFloat = 1.23456 // Float이 수용할 수 있는 범위의 수로 변경
64비트의 부동소수형 표현을 하는 Double //64비트 환경에서 Double은 최소 15자리의 십진수를 표현할 수 있습니다.
var DoubleValue: Double = 3.14
var someFloat: Float = 3.14
DoubleValue = 3 // Float과 마찬가지로 소수점을 기재하지않아도 할당 가능
DoubleValue = someFloat // 오류!! 다른 타입이므로 불가 .
4. Character
말 그대로 문자 입니다. 한 글자(문자)를 표현하기 위한 타입입니다.
문자를 표현하기 위해서는 값의 앞뒤 에 큰따옴표를 사용하여 표현합니다.
let alphabetA: Character = "A"
print(alphabetA)
let iloveyou: Character = "♡" //😍
// Character 값에 유니코드 문자를 사용할 수 있습니다.
print(iloveyou)
let 한글변수이름: Character = "ᄀ"
// 한글도 유니코드 문자에 속해 있으므로 스위프트 코드에 변수 이름으로 사용할 수 있습니다.
5. String
Stiring은 문자의 나열, 즉 문자열입니다.
String , Character 둘다 마찬가지로 유니코드9 를 사용하고 값의 앞 뒤로
큰 따옴표("") 를 사용합니다.
let name: String = "Kyuu" // 상수로 선언된 문자열은 변경이 불가능합니다.
// 이니셜라이저를 사용하여 빈 문자열을 생성할 수 있습니다.
// var 키워드를 사용하여 변수를 생성하였으므로 문자열의 수정 및 변경이 가능합니다.
var introduce: String = String()
introduce.append("제 이름은")
// append() 메서드를 사용하여 문자열을 이어붙일 수 있습니다.
introduce = introduce + " " + name + 입니다.
// + 연산자를 통해서도 문자열을 이어붙일 수 있습니다.
print(introduce) // 제 이름은 Kyuu 입니다.
var someString: String = "호호호호호! 😄"
someString = someString + "하하하하하" // 연산자를 통해 문자열을 합칠 수 있습니다.
var someCharacter: Character = "😆"
someString = someCharacter // 오류 ! 다른 타입 할당 불가.
6. Any,AnyObject, nil
- Any 는 스위프트의 모든 데이터 타입을 사용할 수 있다는 뜻입니다
- AnyObject 는 Any 보다 한정된 의미로 class의 인스턴스만 할당이 가능합니다.
- nil 은 특정 타입이 아닌 '비어있다' 라는 뜻을 말하는 키워드다
// nil 선택 사항이 아닌 상수 및 변수와 함께 사용할 수 없습니다 . 코드의 상수나 변수가 특정 조건에서 값이 없는 상태에서 작동해야 하는 경우 항상 적절한 유형의 선택적 값으로 선언합니다.
var someAny: Any = "kyuu"
someAny = "😆"
someAny = 3.1451
someAny = "규규 개발노트"
let someDouble: Double = 3.141592
someDouble = someAny // 에러 발생! 타입이 다르므로 할당할 수 없습니다.
someAny = someDouble // Any 타입이므로 할당할 수 있습니다.
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
// AnyObject는 클래스의 인스턴스만 수용 가능하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없습니다.
someAnyObject = 123.12 // 에러 발생!
Swift는 타입에 매우 엄격한 언어이므로 계속해서 사용하는 것은 비추천
런타임 시점에서 타입이 결정나기 때문에 오류가 만약나면 런타임오류로 빠짐
필요한 경우가 아닌경우는 될 수 있는 한 명시하는것이좋다.
끝까지 읽어주셔서 감사합니다!
틀린 부분이 있으면 꼭 코멘트를 남겨주시길 바랍니다.
반응형
'Swift > 문법 정리' 카테고리의 다른 글
SwiftUI에서 속성 래퍼(@State, @Binding, @ObservedObject, @EnvironmentObject) 이해하기 (3) | 2023.05.31 |
---|---|
swift: 기초문법 ( Optional ) 옵셔널 Unwrapping 개념 정리 (4) (0) | 2022.04.27 |
Swift: 기초문법 ( if / switch ) , ( for / while ) 조건문과 반복문 제어문(3) (1) | 2022.04.27 |
Swift : 기초 문법 [ 변수와 상수] (1) (0) | 2022.03.13 |