100 Days of Swift - Day 1: Simple Types

100 Days of Swift - Day 1: Simple Types

100 Days of Swift Day 1 - Simple Types(Variables, String and Integers, Doubles and Booleans, Constants and Type Annotations)

오늘의 충격적인 사실: Swift는 큰 숫자를 1000 단위로 underscore로 구분해준다! 말도 안돼😋 솔직히 앞부분에선 배울 거 없을 줄 알았는데 반성반성~.~

Variables

  • Program data를 저장하는 공간
  • 값이 자유롭게 변한다
var str = "Hello, playground"
str = "This is playground" // 두 번째에는 'var' keyword가 필요없음! 

String and Integers

  • Swift는 type-safe language 이다. 그 말인 즉슨, 모든 변수는 무조건 하나의 특정한 타입이어야 한다는 것!
// STRING type
var str = "Hello, playgroud" 

// INT type
var age = 38 
var population = 8_000_000 // 큰 숫자의 경우에는 underscore(_)를 이용해 천 단위마다 끊어준다! 우왕! 하지만 값은 변하지 않음. 그냥 읽기 쉬우라고!

// STRING and INT cannot be mixed! 
str = 38 // 이런건 안된다. 왜냐하면 type-safe language니까 ~.~

Why is Swift a type-safe language?

var meaningOfLife = 42 // swift에서 meaningOfLife를 integer로 인식
meaningOfLife = "Forty two" // 에러!
  • 이렇게 type 변경을 막아놓는 것은 앱을 만드는데 엄청난 도움이 된다고 한다. 프로그램이 커질 수록 변수의 타입을 그때그때 파악해서 알맞게 사용하는 일이 어려운데, 아예 막아버리면 이러한 이유로 발생하는 버그도 함께 막을 수 있기 때문!

Multi-line Strings

  • Standard swift string은 double quote을 이용하지만 그렇게 하면 line break를 포함시킬 수 없음! Multi-line string을 위해서는 three double quote를 사용해야한다!
var str = """
This goes 
over multiple 
lines
"""
  • swift는 quote를 어떻게 열고 닫는지에 굉장히 예민함. opening/closing quote은 자신만의 줄에 있어야한다! 하지만 opening/closing linebreak는 최종 string에는 포함되지는 않는다.
  • 단순히 코드를 조금 더 깔끔하게 쓸 목적으로 multi-line string을 이용할 때 line break가 실제 string에 포함되지 않게 하려면 아래와 같이 \를 사용하면 된다.
var str2 = """
This goes \ 
over multiple \ 
lines 
""" // 이렇게 적을 시 실제 str2에는 Linebreak가 없음. 

String Interpolation

  • \()를 이용해서 어떤 data type이던간에 string 안에 포함시킬 수 있다! String 안에 string을 넣는 것 역시 가능함. Nested로도 가능하다!
  • 단순히 변수를 넣는 것 뿐만 아니라 string interpolation 내부에서 코드를 실행하는 것 역시 가능.
var score = 85
var str = "Your score was \(score)"
var results = "The test results are here: \(str)"
  • Swift의 String interpolation은 굉장히 강력하다. 그 강력함을 확인할 수 있는 .

Doubles and Booleans

  • Double: double-precision floating-point number , fractional number를 멋있게 부르는 말 ㅋㅋㅋㅋ
var pi = 3.141 // fractional number은 자동으로 Double으로 인식
  • 주의사항! Double과 Integer은 다름. 섞어쓰지 말 것!!!
  • Boolean: 참/거짓 값.
var awesome = true

Constants

  • 변수와는 다르게 한 번 선언되면 값이 변하지 않는 것들이 있다. 이런 const들은 var keyword 대신에 let keyword를 이용해서 선언한다.
  • const의 값을 바꾸려 하면 swift가 코드를 실행시키지 않음.
let taylor = "Swift" // 이 이후에는 새로운 값을 넣을 수 없음!

Type Annotations

let str = "Hello, playground" // Type inference
let album: String = "Reputation" // Type annotation
let year: Int = 1989 // Type annotation
  • type inference : Swift는 변수를 어떻게 생성했느냐에 따라 타입을 추론한다.
  • 하지만 명시적으로 적을 수도 있는데, 그게 바로 type annotation

Why does Swift have type annotations?

  • 이 질문은 type annotation을 언제 써야하는가? 와도 동일하다. 크게 세 가지 상황이 있음.

    • Swift가 이용된 type을 정확히 파악할 수 없을 때
    • default와는 다른 type을 사용하기를 원할 때
    var percentage: Double = 99
    
    • 아직 값을 넣어주지 않았을 때
    var name: String
    
  • 강의자는 Type annotation을 최소화하고 type inference를 최대한 활용하는 것을 좋아하는데, 이유는 아래와 같음.

    • 코드가 짧고 가독성이 좋아진다.
    • 초기값을 바꿈으로서 간단하게 type을 바꿀 수 있음.
    • 하지만 이는 사람마다 취향이 다 다르니 참고만 할 것!

Simple Type - Summary

  • 변수에는 var, 상수에는 let을 이용. 상수를 최대한 활용하자!
  • String은 "으로 열고닫음. 하지만 multi line이 되기를 원한다면 """을 이용!
  • Integer는 정수를, Double은 실수를 담고 Boolean은 참/거짓을 담는다.
  • String interpolation은 다른 변수/상수를 이용해 String을 만들 수 있게 해준다.
  • Swift는 각 변수의 타입을 추정하기 위해 type inference를 이용한다. 하지만 원한다면 type annotation 을 이용해서 타입을 명시적으로 적어줄 수 있음!

강의 주소


© 2021 Subeen Park. All rights reserved.