swift class, func Advanced
func
omit variable name
func testA(var str: String, _ str2: String, _ str3: String) {
print(str)
print(str2)
}
testA("s", "b", "c")
variable arguments
func varArgs(sep: String = "/", strings: String...) -> String {
var res = ""
for str in strings {
res += str + sep
}
return res
}
var total = varArgs("/", strings: "A", "B", "C")
print(total)
inout reference
func inoutTest(inout array : [Int]) -> Void {
array.append(1)
array.append(2)
array.append(3)
}
var array1 : [Int] = []
inoutTest(&array1)
print(array1)
closure
// Closure
var x = 5
let calc = {(i: Int) -> Int in
return 3 * i * x
}
print(calc(1))
struct
// Structure
struct TestStruct {
var title = String()
}
var test = TestStruct(title: "Wow!")
test.title = "Wonder"
print(test.title)
struct Service {
var number : Int
}
class
willSet, didSet
before, after to set parameters
// willSet, didSet
class SetObClass {
init() {
title = "Ore"
}
var title: String {
willSet {
print("Call willSet old: \(title)")
print("Call willSet new: \(newValue)")
}
didSet {
print("Call didSet old: \(oldValue)")
print("Call willSet new: \(title)")
}
}
}
var obj = SetObClass()
obj.title = "Sunday"
deinit
class SampleClass {
init() {
}
deinit {
print("deinit")
}
}
var sample : SampleClass? = SampleClass()
sample = nil
