본문 바로가기

Dev/iOS & SWIFT

[Swift] 상수(let)와 변수(var) | 데이터 타입 | Any, AnyObject, nil

728x90
반응형

상수, 변수의 선언

  • let: 상수 선언 키워드
  • var: 변수 선언 키워드
  • 차후에 변경되지 않을 키워드는 상수인 let으로 선언하고, 변경할 값은 var로 선언함
import Swift

// 상수와 변수의 선언
// 값이 타입이 명확하다면 타입은 생략할 수 있음! 하지만 적어주는 것이 좋음
// let 이름: 타입 = 값
// var 이름: 타입 = 값

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

// 예제
let name: String = "Gil-Dong"
let age: Int // 나중에 할당할 수도 있음! 변수도 OK!
let inputA: Int = 10
let inputB: Int = 5

age = inputA + inputB

 

데이터 타입

  • Bool: true와 false, 즉 참(1)과 거짓(0)만 저장할 수 있는 타입
  • Int: 정수(... -2, -1, 0, 1, 2 ...) 만 저장할 수 있는 타입
  • UInt: 부호가 없는 정수, 즉 양의 정수만 저장할 수 있는 타입
  • Float: 32bit 부동 소수 타입의 실수를 저장할 수 있는 타입 (정수 저장 가능)
  • Double: 64bit 부동 소수 타입의 실수를 저장할 수 있는 타입 (정수 저장 가능)
  • Character: 한 글자(문자)를 저장할 수 있는 타입! 유니코드 기반이기 때문에 이모티콘도 가능! 큰따옴표 사용!
  • String: 여러 글자의 문자를 저장할 수 있는 타입! 유니코드 기반! 큰따옴표 사용! 연산 숫자로 합치기도 가능!

※ 자료형에 매우 엄격한 언어임! 서로 다른 데이터타입을 입력하려고 하면, 무조건 에러 발생하니까 유의!

 

Any, AnyObject, nil

  • Any: Swift의 모든 타입을 지칭하는 키워드
  • AnyObject: 모든 클래스 타입을 지칭하는 프로토콜
  • nil: 없음을 의미하는 키워드 (다른 언어에서의 null과 유사)
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12

// 하지만 아래의 경우는 불가능함
// let someDouble: Double = someAny 

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

// 오류 발생 케이스 - 클래스만 들어가야함
// someAnyObject = 123.12

// 오류 발생 케이스 - 어떤 값이든 들어올 수 있지만, 빈 값은(nil) 넣을 수 없음
// someAny = nil
// someAnyObejct = nil

 

 

본 내용은 부스트코스의 'iOS 프로그래밍을 위한 스위프트 기초' 강의를 토대로 작성되었습니다

728x90
반응형