코드 출처 - iOS 프로그래밍을 위한 Swift 기초 강의
1. 이름짓기 규칙
- Camel Case: 낙타의 등 모양 같은 표기법
- Lower Camel Case: function, method, variable, constant, ... ex) someVariableName
- Upper Camel Case: types, class, struct, enum, extension, ... ex) Person, Point, Week
- 대소문자를 구분한다.
2. 콘솔로그와 문자열 보간법
- 콘솔로그: console log. 디버깅 중 디버깅 콘솔에 보여줄 로그. Swift에서는 print()와 dump() 함수를 사용해 출력한다.
- print(): 단순 문자열 출력
- dump(): 인스턴스의 자세한 설명까지 출력
- 문자열 보간법: String Interpolation. 프로그램의 실행 중 문자열 내에 변수나 상수의 실질적인 값을 표현하기 위하여 사용한다. \( )
- 보간법 = 두 점을 연결하는 방법
import UIKit
let age: Int = 10
"안녕하세요! 저는 \(age)살 입니다"
"안녕하세요! 저는 \(age + 5)살 입니다"
print("안녕하세요! 저는 \(age)살 입니다")
print("---------------------------")
class Person {
var name: String = "마자용"
var age: Int = 10
}
let 마자용: Person = Person()
print(마자용)
print("---------------------------")
dump(마자용)
3. 상수와 변수
- Swift → 함수형 pl → '불변객체' 중요시 여김 → 상수 표현을 많이 사용함
- let 상수이름: 타입 = 값
- var 변수이름: 타입 = 값
- 값의 타입이 명확하다면 타입 생략 가능
- 선언을 한 뒤 나중에 값을 할당하려면 반드시 타입을 명시해두어야 함
import UIKit
let constant: String = "차후에 변경이 불가능한 상수 let"
var variable: String = "차후에 변경이 가능한 변수 var"
variable = "변수는 이렇게 차후에 다른 값을 할당할 수 있지만"
let sum: Int
let inputA: Int = 100
let inputB: Int = 200
sum = inputA + inputB
var nickName: String
nickName = "majayong"
nickName = "마자용"
4. 기본 데이터 타입
- Bool
- Int, UInt
- Float, Double
- Character, String
- Swift는 자료형에 매우 엄격한 언어임 → 다른 자료형과의 교환에 주의해야 함
import UIKit
var someBool : Bool = true
someBool = false
var someInt: Int = -100
var someUInt: UInt = 100
var someFloat: Float = 3.14
someFloat = 3
var someDouble: Double = 3.14
someDouble = 3
var someCharacter: Character = "☂️"
someCharacter = "가"
someCharacter = "A"
print(someCharacter)
var someString: String = "비온다 ☂️"
someString = someString + "우산을 써요"
print(someString)
5. Any, AnyObject, Nil
- Any: 모든 값이 올 수 있음 (모든 타입을 지칭하는 키워드)
- AnyObject: 모든 클래스 타입을 지칭하는 프로토콜
- nil: 빈 값. ('없음'을 의미하는 키워드)
import UIKit
var someAny: Any = 100
someAny = "어떤 타입도 수용 가능합니다"
someAny = 123.12
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
6. 컬렉션 타입
- Array - 순서가 있는 리스트 컬렉션
- Dictionary - '키'와 '값'의 쌍으로 이루어진 컬렉션
- Set - 순서가 없고, 멤버가 유일한 컬렉션
import UIKit
var integers: Array<Int> = Array<Int>()
integers.append(1)
integers.append(100)
print(integers)
print(integers.contains(100))
print(integers.contains(99))
integers[0] = 99
integers.remove(at: 0)
integers.removeLast()
integers.removeAll()
print(integers.count)
let immutableArray = [1, 2, 3]
var anyDictionary: Dictionary<String, Any> = [String:Any]()
anyDictionary["someKey"] = "value"
anyDictionary["anotherKey"] = 100
print(anyDictionary)
anyDictionary["someKey"] = "dictionary"
print(anyDictionary)
anyDictionary.removeValue(forKey: "anotherKey")
anyDictionary["someKey"] = nil
print(anyDictionary)
let emptyDictionary: [String: String] = [:]
let initializedDictionary: [String: String] = ["name":"majayong", "gender":"female"]
var integerSet: Set<Int> = Set<Int>()
integerSet.insert(1)
integerSet.insert(99)
integerSet.insert(99)
integerSet.insert(99)
integerSet.insert(100)
print(integerSet)
print(integerSet.contains(1))
print(integerSet.contains(2))
integerSet.remove(99)
integerSet.removeFirst()
print(integerSet.count)
let setA: Set<Int> = [1, 2, 3, 4, 5]
let setB: Set<Int> = [3, 4, 5, 6, 7]
let union: Set<Int> = setA.union(setB)
print(union)
let sortedUnion: [Int] = union.sorted()
print(sortedUnion)
let interSection: Set<Int> = setA.intersection(setB)
print(interSection) [5, 3, 4]
let subtracting: Set<Int> = setA.subtracting(setB)
print(subtracting)
댓글