- 자료형
Int, Double&Float
Bool
String, Character
- 조건문
if true {
} else if false {
} else {
}
guard true else {
}
var val = 1
switch val {
case 0:
case 1:
default:
}
- 반복문
for row in 1...2 {
print("\(i)입니다")
}
while true {
}
repeat {
}
while true
- 집단 자료형
배열 = Array<String>, [String]
세트 = Set<String>(), Set
튜플 = (String, Int)
딕션너리 = Dictionary<String, Int>, [String : Int]
- 옵셔널
var temp : Int? = Int("123")
print(temp!)
var temp : Int! = Int("123")
print(temp)
- 함수
func printHello(name : String, _ msg : String, newline : Bool = true) {
var name = name
name = name + "님"
print("\(name), \(msg)", newline)
}
var count = 30
print(foo(paramCount: &count))
print(count)
- 클로저 (자바의 람다)
{ () -> () in
print("클로저가 실행됩니다")
}
- 구조체(값복사), 클래스(참조복사)
struct Resolution {
}
class VideoMode {
var name : String?
init(name : String) {
self.name = name
}
}
- 프로퍼티
1. 저장 프로퍼티
class User {
var name : String = ""
lazy var value : String {
print("value excute")
return value
}()
}
2. 연산 프로퍼티
struct UserInfo {
var thisYear : Int! {
get {
let df = DateFormatter()
df.dateFormat = "yyyy"
return Int(df.string(from : Date()))
}
set {
}
}
}
3. 타입 프로퍼티
struct Foo {
static var sFoo = "구조체 타입 프로퍼티값"
}
Foo.sFoo = "새로운 값"
- 상속
class Car : Vehicle {
var engineLevel = 0
override var currentSpeed : Double {
get {
return Double(self.engineLevel * 50)
}
set {
}
}
}