Swift 입문4 – 숫자, BOOL

2014-09-30
12 Views

숫자

[swift]

import UIKit

var dollar = 1

var won = 1056.0

[/swift]

dollar, won은 각각 컴파일러가 타입추측을 통해 int형, Double형으로 정의되었습니다. 숫자를 다루는 형은 다양합니다. 예로 Int에 대해서는 Int8, UInt16, 소수점을 사용해야 한다면 Double이외에 Float형이 있습니다.

타입에 집착할 필요가 없다면, 컴파일러가 인식해주는 형추측에 맡겨 Int, Double형으로 두는 것이 좋습니다.

밑줄을 사용할 경우

[swift]

import UIKit

let thousand = 1000

let million = 1_000_000

[/swift]

Swift에서는 밑줄(_)은 1000단위씩 구분하기 위해 사용됩니다.

수치적 변환

수치 계산은 Objective-C와다르지 않는지 살펴봅시다.

[swift]

import UIKit

let dollar = 1

let won = 1056.0

var res = won * won * dollar

[/swift]

이를 실행하면 오류가 발생합니다.

swift-playground-5

Double형 won과 Int형 dallar는 다른 형이기 때문에 정수와 소수 수치 계산으로 오류 발생한 것일까요?

아닙니다. Swift는 수치계산에서는 형이 일치해야 한다는 것입니다. 즉, Int형 dollar를 Double형 인스턴스를 만들어 계산한 결과가 제대로 나오는지 확인합시다.

[swift]

import UIKit

let dollar = 1

let won = 1056.0

var res = won * won + Double(dollar)

[/swift]

즉, 숫자값을 사용할 경우에는 주의가 필요합니다.

Bool

Swift에서 참과 거짓값을 사용할 경우 Bool을 사용합니다.

[swift]

import UIKit

let isMsg = true

var txt = "안녕하세요"

if isMsg == true {

println(txt)

}

[/swift]

Objective-C언어에서는 if문과 같은 조건문에서 객체에 값이 있으면 YES(true)이고 값이 없으면 NO(false)로 처리합니다. 그러나 Swift언어에서는 그렇게 할 수 없습니다.

[objc]

NSString * txt = @"안녕하세요";

if(txt) {

NSLog (@"%@"txt);

}

[/objc]

[swift]

import UIKit

var txt : NSString = "안녕하세요"

if txt {

println(txt)

}

[/swift]

swift-playground-2

오류가 왜 생겼는지 이해가 되셨습니까? 꼭 차이점을 이해하고 넘어가길 바랍니다.

Facebook Comments

You may be interested

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁
Swift 3.0
shares11 views
Swift 3.0
shares11 views

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁

MJ Kim - 4월 29, 2017

몇몇 개발자를 만나 개발을 하다보면, 폐쇄(Closure)에 대해 이해를 하지 못해서 간단하게 바로 이해할 수 있는 팁을 정리해본다. 앱을 개발하다보면 https통신을…

[Swift3] UITextview의 keyboard 닫기
Swift 3.0
shares2 views
Swift 3.0
shares2 views

[Swift3] UITextview의 keyboard 닫기

MJ Kim - 4월 29, 2017

스토리보드에서 델리게이트를 선언하고 class에 UITextViewDelegate를 상속받아서 delegate=self를 viewDidLoad에서 설정하면 간단하게 해결되는데 가끔 헷깔려 하는 경우가 있어 적어본다. [crayon-59053d78135f2163576014/] [crayon-59053d78135f7171226551/] [crayon-59053d78135f9197234067/]…

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈
Swift 3.0
shares5 views
Swift 3.0
shares5 views

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈

MJ Kim - 4월 29, 2017

다국어 지원은 우선 Localizable.strings파일을 생성한 다음 언어를 지정한다. 그리고 필자가 자주 사용하는 일부 컨트롤들에 대한 확장(extension)을 추가한 다음 스토리보드에서 사용하는…