개발🧑‍💻/Swift

[Swift] 기본

* 이 글은 "스위프트 프로그래밍" (3판)을 보며 공부한 내용을 정리한 것입니다.

 

1.  기본 명명 규칙

  • 변수, 상수, 함수, 메서드, 타입 등의 이름은 유니코드에서 지원하는 어떤 문자(한글, 한자, 영문, 숫자, 이모티콘 등) 라도 사용할 수 있습니다. 다만 다음과 같은 예외 경우는 사용할 수 없습니다. 

- 스위프트에서 미리 정한 예약어 또는 키워드

- 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름

- 연산자로 사용될 수 있는 기호 ( +, -, *, / )

- 숫자로 시작하는 이름

- 공백이 포함된 이름

  • 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스(Lower Camel Case)를 사용합니다.
  • 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는 대문자 카멜케이스(Upper Camel Case)를 사용합니다.
  • 대소문자를 구별합니다. (ex : Var 과 var를 다르게 인식한다.)

2.  문자열 보간법 (String Interpolation)

문자열 보간법은 변수 또는 상수의 값을 문자열 내에 나타내고 싶을 때 사용합니다.

문자열 내에  \(변수나 상수) 의 형태로 표기하면 이를 문자열로 치환하여 넣습니다.

let name : String = "peter"
print("My name is \(name)")

// My name is peter

3.  주석 (Comment)

주석은 소스코드에 정보를 남기는 목적으로 사용합니다. 코드를 다시 봤을 때 중요한 메모나 다른 사람에게 설명하기 위한 메모 등을 주석으로 남깁니다. 마크업 문법에 맞춰 메서드나 변수, 클래스 등에 주석을 작성하면 Xcode의 퀵헬프로 다른 프로그래머가 해당 내용을 확인할 수 있습니다. 

 

// 한 줄 주석은 이렇게 표현합니다.

/* 여러 줄 주석은
다음과 같이
나타낼 수 있습니다. */

/*
한 줄만 달수도 있습니다.
*/

/* 중첩 주석도 가능합니다.
/* 이런 식으로
// 여러 줄의 주석 혹은 한 줄 주석도 가능합니다.
*/
이렇게 말이죠
*/

마크업 문법을 활용한 문서화 주석은 다음에 추가하도록 하겠습니다.

 

4. 변수와 상수

 변수와 상수를 이용하여 데이터를 메모리에 임시로 저장합니다. 변수는 생성 후 값의 변경이 가능하지만, 상수는 한번 값을 설정하면 변경 할 수 없습니다.

4.1 변수 (Variables)

 스위프트에서는 변수를 생성하기 위해 var 키워드를 사용합니다. var 변수명 : 데이터 타입 = 값 의 형태로 선언합니다. 데이터 타입은 생략이 가능합니다. (스위프트가 타입을 추론하여 지정함, 타입 추론)

 

var name : String = "peter"
var age : Int = 25
var job : String = "Student"
var score = 100
print("\(type(of: score))") // Int 출력

job = "Athlete" // 변수는 값의 변경이 가능

print("저의 이름은 \(name)이고, 나이는 \(age)이며, 직업은 \(job) 입니다. 저의 점수는 \(score) 입니다.")
// 저의 이름은 peter이고, 나이는 25이며, 직업은 Athlete 입니다. 저의 점수는 100 입니다.

 

4.2 상수 (Constants)

 스위프트에서는 상수를 생성하기 위해 let 키워드를 사용합니다. let 상수명 : 데이터 타입 = 값 의 형태로 선언합니다. 마찬가지로 데이터 타입은 생략 가능합니다. 상수를 사용하는 가장 중요한 이유는 가독성입니다. 상수는 변하지 않는 값이므로 상수로 값을 선언하면, 이후 코드에서 값의 변화가 없다는 사실을 주석이나 문서 등을 살펴보지 않고서도 직관적으로 알 수 있습니다. 즉, 차후 값의 변경을 신경쓰지 않아도 된다는 것입니다. 

 

let name : String = "Peter" // 차후 변경하지 않는 값은 상수로 선언합니다.
let score = 100
var age : Int = 25
var job : String = "Student"

// 변수의 값을 변경할때는 기존과 동일한 타입의 값을 할당해야 합니다. 즉, 선언했던 데이터 타입의 값을 할당해야 합니다.
age = 26
job = "Programmer"

// 상수로 선언된 값은 변경할 수 없습니다. 오류가 발생합니다.
score = 99 // Cannot assign to value: 'score' is a 'let' constant
name = "Kevin" // Cannot assign to value: 'name' is a 'let' constant

/* 특정 값에 특별한 의미를 부여할 때 상수를 사용할 수도 있습니다. 
예를 들어 입력받는 수의 최대 크기가 100이라고 한다면, 100이라는 숫자에 의미를 부여하기 위해 아래와 같이 선언해두면
차후에 직관적으로 읽기도 쉽고 사용하기도 편리합니다.
*/

let maxInputValue = 100