[swift]01. The Basics

swift

목차

  1. The Basics
  2. Constants and Variables
  3. Comments
  4. Semicolons


The Basics

Swift는 새로운 프로그래밍 언어이지만 C와 Objective-C를 쓴 적 있다면 친숙할 것입니다. C와 Objective-C의 int, double, float, bool, string을 포함하여 기본적인 타입들을 제공합니다. 뿐만 아니라 Array, Set과 Dictionary를 Collection Types으로 제공합니다. Tuple같은 C와 Ojective-C에 없는 advanced types도 제공합니다.

C처럼 이름을 정의하는 것으로 변수를 사용할 수 있고, 변하지 않는 변수(상수)를 확장적으로 사용 할 수 있습니다. 상수는 C의 상수보다 강력합니다. Swift는 코드를 안전하고 깔끔하게 만들기 위해 상수를 사용합니다.

Swift는 값의 부재를 다루기 위해 optional types라는 개념을 소개합니다. Optionals는 “값이 있고, 그것은 X와 동일함” 또는 “값이 없음”을 알립니다. Optionals는 Swift의 핵심적인 기능의 핵심이자 Objective-C의 nil pointer보다 표현력이 있고 안전합니다.

Swift는 type-safe 언어로 사용하는 값의 타입에 명확합니다. type-safety는 non-optional String 타입이 필요할 때 optional String이 우연히 들어오는 것을 방지합니다. Type-safety는 에러를 찾고 고치는 것을 도웁니다.


Constants and Variables

Declaring Constants and Variables

상수는 let으로, 변수는 var으로 선언합니다.

let maximunNumber = 10
var currentLoginAttempt = 0

여러 개의 상수나 변수를 commas로 분리하여 한 줄에 선언할 수 있습니다.

var x = 0.0, y = 1.1, z = 2.2

Note :

변하지 않을 값을 넣을 때는 언제나 let 키워드로 상수로 선언하세요. 변수로 저장하는 건 값을 바꿀 필요성이 있을 때만 사용하세요.


Type Annotations

상수나 변수를 선언할 때 type annotation(타입 주석)을 사용할 수 있습니다.

var welcomeMessage: String
// welcomeMessage 변수는 String 타입(= 어떤 String 값도 저장 가능함)으로 선언한다.

같은 타입의 변수들을 commas로 분리하여 한 줄에 선언할 수 있습니다.

var red, green, blue: Double

Note :

실제로 type annotations를 사용하는 경우는 드뭅니다. 상수나 변수의 초기 값을 제공한다면, Swift는 Type Safety and Type inference에 설명된 대로, 언제나 상수나 변수의 타입을 추론할 수 있습니다. 위의 welcomeMessage 예에서는 초기 값이 없기 때문에, type annotation으로 타입을 지정했습니다.


Nameing Constants and Variables

상수와 변수 이름은 유니코드 문자를 포함한 대부분의 문자를 쓸 수 있습니다.

let 🐶 = "dog"

상수와 변수는 공백 문자, 수학 기호, 화살표, priate-use Unicode scalar values, line-drawing(과 box-drawing)은 포함할 수 없습니다. 또한 숫자로 시작할 수 없습니다.

한 번 선언하면 똑같은 이름으로 선언할 수 없습니다. 다른 타입의 값을 저장할 수도 없습니다. 상수를 변수로, 변수를 상수로 바꿀 수도 없습니다.

Note:

만약 상수/변수를 예약어와 같은 이름으로 사용하고 싶다면, 이름을 쓸 때 backtics(`)로 감싸세요. 하지만, 선택지가 없는 경우가 아니라면 예약어를 사용하는 건 피하세요.


Printing Constants and Variables

print(_:separator:terminator:) 함수는 상수/변수 값을 출력할 수 있습니다. 예를 들어, XCode “console” 창에, print 함수를 이용해 결과를 출력합니다. separator과 terminator parameter는 기본 값을 가지므로 호출 시에 생략할 수 있습니다. 기본적으로 함수는 line break를 추가하여 끝내므로 line break 없이 값을 출력하려면 print(someValue, terminator: "")와 같이 terminator에 빈 문자열을 전달하면 됩니다.

Swift는 문자열 보간법을 사용합니다. \\()에서 괄호 안에 원하는 값을 넣습니다.

print("The current value is \(currentValue)")
// "The current value is 123" 출력됨(currentValue는 123)


Comments

C와 동일하게 ///**/를 쓸 수 있습니다. 다만 multiline comments는 중첩될 수 있습니다.

/* 1st comment
    /* 2nd comment, nested multiline comments */
3rd comment */


Semicolons

다른 언어들과 다르게 문장이 끝날 때 semicolon를 쓸 필요가 없습니다. 하지만, 한 줄에 여러 문장을 쓰고 싶다면 semicolon이 필요합니다.

let someValue="12"; print(someValue)