0. Swift란?
Swift는 iOS, macOS, watchOS, and tvOS app 개발을 위해 만들어진 언어다. C와 Objective-C와 많은 부분에서 유사하다.
객체 지향 프로그래밍, 함수형 프로그래밍의 패턴을 모두 갖고 있다. 특징은 나중에 차차 정리해볼 예정이다.
1. Naming
Swift는 이름을 지을 때 Camel Case를 사용한다!
함수, 메서드, 변수, 상수 -> Lower Camel Case
클래스, 구조체, 열거형, 익스텐션과 같은 타입명 -> Upper Camel Case
2. 콘솔 출력
- print: 단순 문자열 출력
- dump: 인스턴스의 자세한 설명까지 출력
3. String Interpolation
문자열 내에 변수 또는 상수의 실질적인 값을 표현하기 위해 사용
백슬래시(\)와 괄호로 표현한다 \()
let age: Int = 10
print("안녕하세요! 저는 \(age)살입니다.")
4. 변수와 상수
- 상수 선언 키워드: let
- 변수 선언 키워드: var
// let 이름: 타입 = 값
// var 이름: 타입 = 값
let constant: String = "hello"
let variable: String = "world"
constant = "hello world!" // 오류
variable = "hello world!" // 가능
Swift는 선언 후 나중에 값을 할당할 수 있다
단, 나중에 할당할 변수와 상수는 반드시 타입을 명시해야 한다
상수의 경우 첫 할당 이후로는 값 변경 X
변수는 계속해서 값을 변경할 수 있음
5. 기본 데이터 타입
Swift는 안전한 프로그래밍을 위해 데이터 타입 간의 변환이 까다롭다.
- Bool (true/false) : 0/1 불가능
- Int (실수, 소수 X)
- UInt (음수 X)
- Float (정수 O)
- Double (정수 O, Float X)
- Character (큰 따옴표 사용, 이모티콘 가능)
- String
6. Any, AnyObject, nil
Any - Swift의 모든 타입을 지칭
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능"
someAny = 123.12
let someDouble: Double = someAny // 오류
AnyObject - 모든 클래스 타입을 지칭하는 프로토콜
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
someAnyObject = 123.12 // 오류
nil - 없음을 의미, null과 유사
someAny = nil //오류
someAnyObject = nil // 오류