스위프트 기초 시리즈

기초 지식

스위프트의 모든 코드 맨 윗줄에는 특정 라이브러리 등을 불러오는 import가 필수입니다. 사용목적에 따라 Foundation이나 UIKit등을 불러올 수 있는데 이하 코드에서는 생략된 경우도 있으니 참고 부탁드립니다.

기초 코드는 xcode의 Playground에서 시작하는 것이 효율적입니다. xcode 프로그램을 실행하면 처음에 프로젝트 또는 플레이그라운드를 선택하는 창이 나오는데 Start Playground를 선택하고 blank를 선택해서 시작합니다.

나중에 다루겠지만 스위프트의 텍스트 표시 기능은 print() 등이 있습니다. 다만, 플레이그라운드에서는 변수를 옆에 표시해주는 기능이 있어서 프린트 기능은 디버그 용도로는 자주 사용하지 않습니다.

 

상수 (Constant)

상수는 변수와 다르게 한 번 만들고 나면 변경하는 것이 불가능합니다. 상수는 let 키워드를 사용합니다. 모 프로그래밍 언어와 다르기 때문에 주의하세요.

import UIKit

let apples = 3
let oranges = 5
let appleSummary = "나는 \(apples) 개의 사과를 갖고 있습니다."
let fruitSummary = "나는 \(apples + oranges) 개의 과일을 갖고 있습니다."

3~4 라인의 \(변수 또는 상수 이름) 은 해당 변수의 값을 스트링에 대입시켜 줍니다.

이미 선언한 상수를 변경하려고 시도하면 에러가 발생합니다.

let apples = 3

...

apples = 66

// Cannot assign to value: 'apples' is a 'let' constant
// 상수에 값을 할당할 수 없습니다.

 

퀴즈 1. 실수 3.2 와 4.3의 합을 let 상수만을 이용해 나타내시오.

let real1 = 3.2
let real2 = 4.3
let realText = "실수: \(real1 + real2)입니다."

“실수: 7.5입니다.”

 

퀴즈 2. ‘박씨’의 이름을 name 상수에 할당하고, 그 사람의 인사말을 상수를 이용해 표시해보시오.

let name = "박씨"
let greeting = "안녕하세요? 제 이름은 \(name)입니다."

“안녕하세요? 제 이름은 박씨입니다.”

 

변수 (Variable)

상수와 비슷하나 나중에 값의 재할당이 가능합니다. 키워드 var를 사용합니다.

var grapes = 3
print("포도는 \(grapes)개 입니다.")
grapes = 15 // 값의 재할당 - 변수라서 가능
print("아니다, 포도는 \(grapes)개입니다.")

포도는 3개 입니다.
아니다, 포도는 15개입니다.

 

배열 (Array)

배열은 특정 값이 여러 개의 컬렉션(Collection) 형태로 모여 있는 변수 또는 상수입니다. 배열은 [] 괄호 안에 값을 콤마로 구분하여 나열하면 선언됩니다.

var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"

변수로 선언된 배열은 배열의 원소 값을 바꿀 수 있습니다. 원소는 배열 안의 개별 값들을 의미합니다. shoppingList[1]은 해당 배열의 두 번째 원소 값을 의미합니다. 배열 안 원소의 주소값은 0부터 시작하기 때문입니다.

한편, 상수로 선언된 배열은 내부 원소 값을 바꾸는 것이 불가능합니다.

let arrOfConstant = ["A", "B", "C"]
arrOfConstant[1] = "가"

// Cannot assign through subscript: 'arrOfConstant' is a 'let' constant

 

퀴즈 1. 95, 65, 70, 54, 77의 원소가 들어 있는 ‘성적‘ 이라는 이름의 상수 배열을 생성하고, 원소들의 총합과 평균을 계산하시오. 단, 총합과 평균 계산시 배열의 접근식을 사용하며 평균 계산시 배열의 길이를 나타내는 성적.count 기능을 사용하시오.

let 성적 = [95, 65, 70, 54, 77]

let sumOf성적 = 성적[0] + 성적[1] + 성적[2] + 성적[3] + 성적[4] 
// 361

let avrOf성적 = sumOf성적 / 성적.count 
// 72

 

사전 (Dictionary) 

사전이라는 자료형이 있습니다. 키와 값(key & value)로 구분된 쌍이 여러 개 모여있는 자료형입니다. key는 단어, value는 그 단어의 뜻(정의)이라고 보면 됩니다. 참고로 자바스크립트의 객체(Object), 자바의 Map 자료형과 비슷한 개념입니다.

배열과 마찬가지로 [] 괄호로 묶입니다. 키:값, ... 의 형태로 자료를 입력합니다.

var occupations = [
    "Malcolm" : "함장",
    "Kaylee" : "기계공",  // 마지막 ,는 생략해도 된다.
]

사전형 변수에는 키값쌍을 추가할 수 있습니다. 가수라는 직업을 가진 Kanye이라는 자를 추가하겠습니다.

occupations["Kanye"] = "가수"
print(occupations)

[“Kaylee”: “기계공”, “Malcolm”: “함장”, “Kanye”: “가수”]

 

퀴즈 1. print 기능을 이용해 Malcolm의 직업을 표시하시오.

print("Malcolm의 직업은 \(occupations["Malcolm"]!) 입니다.")

// Malcolm의 직업은 함장 입니다.

 

배열, 사전의 초기화 (Initialize)

배열이나 사전을 초기화한다는 것은 아무것도 들어있지 않은 빈 배열이나 사전을 생성한다는 의미입니다.

자료형을 특정할 수 있을 때는 자료형을 명시하여 초기화합니다. 새로 변수를 생성할 때에는 반드시 자료형이 명시된 형태로만 초기화할 수 있습니다.

var emptyArray = [String]() 
// [] : 원소 자료형이 String 타입인 빈 배열

var emptyDictionary = Dictionary<String, Float>() 
// [:] : 키는 String 타입이며, 값은 Float 타입의 빈 사전

기존에 있던 변수에 새로운 값을 할당하거나 함수에 argument로 전달할 때 타입정보를 추론할 수 없다면 다음과 같이 자료형을 명시하지 않고 초기화합니다.

shoppingList = []
occupations = [:]
스위프트 기초 시리즈

문의 | 코멘트 또는 yoonbumtae@gmail.com


카테고리: Swift


0개의 댓글

답글 남기기

Avatar placeholder

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다