꾸준히 안타치기

상수변수 / 데이터 타입 /Any, AnyObject, nil 본문

iOS/swift

상수변수 / 데이터 타입 /Any, AnyObject, nil

글자줍기 2021. 12. 12. 20:13
반응형

1. 상수와 변수 선언

  • let : 상수 선언 키워드 /  한번 선언하면 변경안되는 값 
  • var : 변수 선언 키워드 / 다른값으로 계속 바꿀수 있음
// 상수와 변수 선언
let 상수이름: 타입 = 값
var 변수이름: 타입 = 값

// 값의 타입이 명확하다면 타입 생략 가능
let 상수이름 = 값
var 변수이름 = 값

// 상수와 변수 활용
let constant: String = "차후에 변경이 불가능한 상수 let"
var variable: String = "차후에 변경이 가능한 변수 var"

variable = "변수는 이렇게 차후에 다른 값을 할당할 수 있지만"
// constant = "상수는 차후에 값을 변경할 수 없습니다" // 오류발생

2. 상수 선언 후, 값 할당하기

  • 선언을 한 뒤, 나중에 값을 할당하려는 상수나 변수는 반드시 타입을 명시해야 합니다.
    let sum: Int
    let inputA: Int = 100
    let inputB: Int = 200
    
    // 선언 후 첫 할당
    sum = inputA + inputB
    
    // sum = 1 // 그 이후에는 다시 값을 바꿀 수 없습니다, 오류발생
    
    // 변수도 물론 차후에 할당하는 것이 가능합니다
    var nickName: String
    
    nickName = "yagom"
    
    // 변수는 차후에 다시 다른 값을 할당해도 문제가 없지요
    nickName = "야곰"​

https://www.boostcourse.org/mo122/lecture/11127?isDesc=false 

 

iOS 프로그래밍을 위한 스위프트 기초

부스트코스 무료 강의

www.boostcourse.org

4. Float, Double

  • Float : 실수 타입. 32비트 부동소수형.
  • Double : 실수 타입. 64비트 부동소수형.
// Float
var someFloat: Float = 3.14
someFloat = 3

// Double
var someDouble: Double = 3.14
someDouble = 3
// someDouble = someFloat // 컴파일 오류발생

 

5. Character, String

  • Character : 문자 타입. 유니코드 사용. 큰따옴표("") 사용.
  • String : 문자열 타입. 유니코드 사용. 큰따옴표("") 사용.
// Character
var someCharacter: Character = "🇰🇷"
someCharacter = "😄"
someCharacter = "가"
someCharacter = "A"
// someCharacter = "하하하" // 컴파일 오류발생
print(someCharacter)

// String
var someString: String = "하하하 😄 "
someString = someString + "웃으면 복이와요"
print(someString)

// someString = someCharacter // 컴파일 오류발생

 

 1. Swift의 기본 데이터 타입

  • Bool
  • Int, UInt
  • Float, Double
  • Character, String

2. Bool

  • true false만을 값으로 가지는 타입
var someBool: Bool = true
someBool = false
// someBool = 0 // 컴파일 오류발생
// someBool = 1 // 컴파일 오류발생

3. Int, UInt

  • Int : 정수 타입. 현재는 기본적으로 64비트 정수형
  • UInt : 양의 정수 타입. 현재는 기본적으로 64비트 양의 정수형.
// Int
var someInt: Int = -100
// someInt = 100.1 // 컴파일 오류발생

//UInt
var someUInt: UInt = 100
// someUInt = -100 // 컴파일 오류발생
// someUInt = someInt // 컴파일 오류발생

4. Float, Double

  • Float : 실수 타입. 32비트 부동소수형.
  • Double : 실수 타입. 64비트 부동소수형.
// Float
var someFloat: Float = 3.14
someFloat = 3

// Double
var someDouble: Double = 3.14
someDouble = 3
// someDouble = someFloat // 컴파일 오류발생

 

5. Character, String

  • Character : 문자 타입. 유니코드 사용. 큰따옴표("") 사용.
  • String : 문자열 타입. 유니코드 사용. 큰따옴표("") 사용.
// Character
var someCharacter: Character = "🇰🇷"
someCharacter = "😄"
someCharacter = "가"
someCharacter = "A"
// someCharacter = "하하하" // 컴파일 오류발생
print(someCharacter)

// String
var someString: String = "하하하 😄 "
someString = someString + "웃으면 복이와요"
print(someString)

// someString = someCharacter // 컴파일 오류발생

 

:: Any, AnyObject, nil ::

 

  • Any - Swift의 모든 타입을 지칭하는 키워드
  • AnyObject - 모든 클래스 타입을 지칭하는 프로토콜
  • nil - '없음'을 의미하는 키워드

 

1. Any

  • Swift의 모든 타입을 지칭하는 키워드
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12

// Any 타입에 Double 자료를 넣어두었더라도 Any는 Double 타입이 아니기 때문에 할당할 수 없습니다. 
// 명시적으로 타입을 변환해 주어야 합니다. (타입 변환은 차후에 다룹니다.)
let someDouble: Double = someAny  // 컴파일 오류발생

 

2. AnyObject

  • 모든 클래스 타입을 지칭하는 프로토콜

(클래스와 프로토콜에 대한 설명은 차후에 합니다.)

class SomeClass {}
var someAnyObject: AnyObject = SomeClass()

// AnyObject는 클래스의 인스턴스만 수용 가능하기 때문에 클래스의 인스턴스가 아니면 할당할 수 없습니다.
someAnyObject = 123.12    // 컴파일 오류발생

 

3. nil

  • 없음을 의미하는 키워드
  • 다른 언어의 NULL, Null, null 등과 유사한 표현입니다.
// someAny는 Any 타입이고, someAnyObject는 AnyObject 타입이기 때문에 nil을 할당할 수 없습니다.
var someAny: Any = 100
var someAnyObject: AnyObject = SomeClass()

// nil을 다루는 방법은 옵셔널 파트에서 다룹니다.
someAny = nil         // 컴파일 오류발생
someAnyObject = nil   // 컴파일 오류발생

 

반응형

'iOS > swift' 카테고리의 다른 글

class vs struct  (0) 2021.12.13
옵셔널*****/ 언랩핑***** / 값이 있는지 없는지 모른다?  (0) 2021.12.13
enum ********케이스 나누기  (0) 2021.12.13
Swift Tip of the day - 스위프트 기초 문법  (0) 2021.12.13
조건문  (0) 2021.12.13
Comments