[Swift] 기초 - 1

팔랑이·2023년 6월 8일
post-thumbnail

23-04-18

알고 보니 애플에서 Swift Language Guide를 매우 잘 정리해 준 페이지가 있었다.

강의 보는데 기본 자료형부터 이해가 드문드문 되는 부분이 많아서 기본 문법자료부터 공부해야겠다 싶었음.

🌏 참고사이트
Swift Language Guide



"If you have experience developing in C or Objective-C, many parts of Swift will be familiar to you."

난 C를 공부해 본 적이 없다. 그래서 뭔가 읭 스러운 부분들이 있었던 듯. Python을 배운 후에 C계열 언어를 배우면 머리가 너무 아프대서... 이참에 어떤 느낌인지 알아보도록 하자.

참고로 Objective-C 는 C언어에서 파생된 객체 지향 프로그래밍 언어이고, Swift 등장 이전까지 애플의 표준 프로그래밍 언어였다고 한다. 내가 몰라서 써 놓음...

Swift의 특징

  1. C 및 Objective-C와 자료형을 공유한다. (Int, Double, Float, Bool, String, Array, Set, Dictionary 등)
  1. 변수는 물론이고, C보다 아주 강력한 "상수"를 사용한다. Swift에서 상수는 아주 넓게 사용되며, 코드를 명료하고 안전하게 만들어주는 역할을 한다.
  1. C와 Objective-C에는 없는 자료형, Tuple을 사용한다. 함수에 Tuple을 적용하면 하나의 값 뭉치에서 여러 값을 산출할 수 있다.
  1. 옵셔널(Optional)이라는 자료형이 있다. 값의 미지정 여부를 관리하는 type이라고 함.
  1. 자료형이 명확한 type-safe language이다. String 자료형을 요구하는 코드에서 실수로 Int를 입력하지 않게 도와줌. 이로써 개발 과정에서 에러를 최대한 빨리 잡을 수 있도록 한다.


상수(Constants)와 변수(Variables)

상수와 변수는 사용되기 전에 선언되어야 함. 상수는 let으로, 변수는 var으로. 로그인 시도회수를 예로 들어보자.

let maxNumberOfLoginAttempts = 10
var currentLogAttempts = 0

이런 식이다.

최대 시도 횟수는 고정되어야 하기 때문에 상수로, 현재 시도횟수는 로그인이 실패할 때마다 늘어나므로 변수로 선언되어야 한다.

여러 개의 상수와 변수를 선언할 수도 있음

var x = 0.0, y - 0.0, z = 0.0



자료형 주석 (Type Annotations)

상수와 변수를 선언할 때, 이들이 저장하는 자료의 종류를 명확히 하기 위해 Type Annotation 을 지정할 수 있다. 상수와 변수의 이름 옆에 콜론(:) 을 붙이고, 띄어쓰기를 하나 한 후, 사용할 자료형의 이름을 쓰면 된다.

var welcomeMessage: String

위와 같은 코드는 다음과 같이 읽힐 수 있다:

"변수 welcomeMessage의 자료형은 String입니다."

welcomeMessage = "Hello"

오류가 나지 않는다.

상수와 변수를 한번에 여러개 지정할 때에도 다음과 같이 사용할 수 있다.

var red, green, blue: Double



상수와 변수 이름 짓기

상수와 변수의 이름은 유니코드 캐릭터를 포함한 캐릭터를 포함할 수 있다.

let π = 3.14159
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"

하지만 공백, 수학 기호, 화살표, 유니코드 스칼라값, line- and box-drawing characters를 포함할 수 없다.

또한 숫자로 시작할 수 없다. 숫자가 맨 앞자리 외의 다른 자리에 포함되는 것은 가능함.

Swift Keyword와 같은 이름의 상수나 변수 이름을 만들고 싶다면 백틱(''')으로 묶어서 표시할 수 있다. 그러나 이 이름들을 사용하는 것은 권장하지 않는다.



기존에 선언된 변수가 있다면, 그 값을 동일 type의 다른 값으로 바꿀 수 있다. 예를 들어서, friendlyWelcome의 "Hello!" 를 "Bonjour!"로 바꿀 수 있다.

var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"

하지만 상수는 위와 같이 바꿀 수 없다. 컴파일 에러가 남.

let friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"

// This is a compile-time error: languageName cannot be changed



상수와 변수의 출력

상수와 변수의 현재 값을 print(_:seperator:terminator:) 로 출력할 수 있다.

print(friendlyWelcome)
// Prints "Bonjour!"
profile
정체되지 않는 성장

0개의 댓글