티스토리 뷰

Develop/iOS

[SwiftBook] 값

Nebori 2018. 9. 18. 13:30
Value

Value

안녕하세요. 이번 챕터에서는 Swift에서 다루는 값에 대해서 알아보려고 합니다. 

아래 내용을 잘 확인해주세요. 바로 시작합니다. 

아래 내용은 모두 Xcode 10, Swift 4.2 에서 작성되었습니다.

Nebori Swift Book

참 / 거짓

타입의 이름은 Bool입니다.

var trueValue = true
var falseValue = false

숫자

정수나 실수를 표현할 수 있는 타입은 많지만, 우선 간단하게 하나씩만 예로 들겠습니다.

//: 정수
var intValue = 100
//: 실수
var floatValue = 1.1

문자

타입의 이름은 String입니다.

var stringValue = "문자"
var multiLineValue = """
    이런 식으로도 문자열을 사용할 수 있습니다.
    다수 라인인 경우 이렇게 사용해보세요.
"""
var sumValue = "이렇게" + "합칠 수도 있습니다."
//: 아쉽지만 문자열로된 숫자는 더해지지 않습니다.
//: 아래의 결과는 문자열 "12"가 됩니다.
var issueValue = "1" + "2"

범위

Swift에서 재미있는 부분이라고 생각되는 범위 타입입니다. 

Obj-C를 사용해보셨다면 NSRange를 기억하실껍니다. 

이제는 다른 방식으로 표현이 가능합니다. 

규칙성 있는 문자도 범위로 지정할 수 있습니다.

var closedRange = 1...100       // 1부터 100까지
var halfOpenRange = 1..<100     // 1부터 100미만 까지
var sideRange = ...10           // 10까지
var floatRange = 1.1...10.1     // 1.1부터 10.1까지
var charRange = "a"..."f"       // a부터 f까지

값으로 놀아보기

연산

1+1
8-3

다른 타입과는 연산 불가능

// Binary operator '-' cannot be applied to operands of type 'Int' and 'String'
10-"문자열"

변수

변수는 값을 담아놓는 저장 공간입니다. 지금은 'var'을 이용해서 변수를 만들어보도록 하겠습니다. 

변수에 '=' 기호를 이용해서 값을 담을 수 있고, 'var'로 선언된 변수는 값을 변경할 수 있습니다.

var valuable = 10
valuable = 100

이미 위에서 'valuable'변수는 Int형 값을 담았기때문에 아래와 같이 다른 타입의 값은 담을 수가 없습니다.

// error: cannot assign value of type 'String' to type 'Int'
// valuable = "갑자기 문자열"

예약어도 변수명으로 사용할 수 있습니다. 

하지만 권장하는 방법이 아닙니다. 헷갈리기 쉽기 때문이죠.

var `let` = "let"

타입 설정

변수는 선언 시에 타입을 같이 설정해줄 수 있습니다. 

타입 설정방법은 변수 이름 뒤에 ':' (콜론)을 사용해서 타입을 지정하면 됩니다. 아래 예시를 볼까요?

var typeFixed: String = "타입을 지정했어요."

타입 선언을 생략하면 어떻게 될까요? 저희가 계속 사용한 방법입니다. 

왜 에러가 발생하지 않았을까요? 바로 대입되는 값에서 추론하여 타입을 지정하기 때문입니다. 

아래 'typeNoneFix'의 경우에는 100을 대입하면 'Int'타입을 가지게 됩니다.

 var typeNoneFix = 100

이제 에러가 나는 상황을 알아볼까요? 타입을 지정하고 지정한 타입이 아닌 다른 값을 넣으면 에러가 발생합니다.

 // error: cannot convert value of type 'Int' to specified type 'String'
// var errTypeFixed: String = 100

하지만 바로 초기값을 대입하지 못하는 경우도 있습니다. 

그런 경우에는 타입 추론을 할 수 없게되고, 결국 에러를 발생시킵니다. 

이런 경우는 어떻게 해야할까요? 바로 타입을 지정해주면 작동이 가능합니다.

// error: type annotation missing in pattern
// var noneType
var noneInitValue: Int
noneInitValue = 100

상수

이제는 상수를 알아보겠습니다. 상수는 변하지 않는 값으로 'let'을 통해서 선언할 수 있습니다. 

상수로 선언된 값은 변경이 불가능하므로 변경 할 일이 없는 값을 상수로 지정해야합니다. 

예를들면, 1년은 몇 달인지? 하루는 몇 시간인지? 나타낼 때 상수를 활용할 수 있습니다.

let month: Int = 12
let language: String = "Swift"

천지개벽해도 'let'으로 선언된 상수는 값을 바꿀 수 없습니다.

// error: cannot assign to value: 'month' is a 'let' constant
// month = 10

해당 챕터에서는 스위프트에서 값을 다루는 방법을 알아보았습니다.

 위 내용이 가장 기본적으로 사용하는 변수, 상수 사용방법이므로 잘 알아두시기를 권장합니다.

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

[SwiftBook] 타입 2/2  (0) 2018.09.20
[SwiftBook] 타입 1/2  (0) 2018.09.19
[iOS] Swift Codable  (0) 2018.09.09
[iOS] Swift QRCode 읽기  (0) 2018.08.26
[iOS] Swift 도형 그리기  (0) 2018.07.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31