Swift Basic
1. Swift Collection Data Structure
Array
- Initialization
var arr = [Int]()
var arr2 : [Int] = []
var arr3 : Array<Int> = []
- Get size
let n = arr.count
- Access
arr[arr.startIndex]
arr.first
arr[arr.endIndex-1]
arr.last
- Append/Insert
arr.append("something")
arr.insert("something insert", at:1)
- Remove/Pop/Drop
arr.removeFirst()
arr.popLast()
arr.removeLast()
arr.remove(at:3)
arr.removeAll()
let getArrExceptFirst = arr.dropFirst()
let getArrExceptLast = arr.dropLast()
- Modify
arr[1] = "Test"
arr[0..1] = ["First", "Second"]
arr[0..1] = ["First", "Second", "Third"]
- Sort/Sorted
arr.sort()
arr.sort(by: >)
let sortedArr = arr.sorted(by:<)
let sortedArrDescending = arr.sorted(by:>)
- Min/Max
arr.min()
arr.max()
- Reverse
arr.reverse()
String/Character
- Access String’s Character
let str = "Swift String Test"
str[str.startIndex]
str[str.index(before: endIndex)]
str[str.index(str.startIndex, offsetBy: 4)]
str[str.index(str.endIndex, offsetBy: -2)]
- Append a Character to a String
- Convert a Character to a String
var newStr = str + [aCharacter]
- Using
insert()
str.insert(m[i] ?? "-", at: str.endIndex)
Dictionary
- Initialization
var dic = [Integer: String]()
- Sort
let sortedByKey = dic.keys.sorted(by:<)
let sortedByVal = dic.values.sorted(by:<)
let sortedByAll = dic.sorted(by:<)
: The two above return an Array. So, if you want to access the values of sortedByKey
, try this
for key in sortedByKey {
print(dic[key])
}
2. Control Flow
For
for i in arr {}
for i in 0...n {}
for i in 0..<n {}
for i in (0...n).reversed() {}
for i in (0..<n>).reversed() {}
for i in stride(from: n, to: 0, by: -2) {}
3. Operator
Unsupported Operator
++
,--
someInt++ //Not working
someInt += 1
&&
if someInt>0 && someInt<10 {} //Not working
if someInt>0, someInt<10 {}
4. Optional
Converting Optional
- Optional Binding
var something: String? = "Hello!"
if let val = something {
print("This is not nill.")
}
- Optional Chaining (+ Optional Binding)
var dic = [Integer: someClass]
if let val = dic[keyValue]?.someProperty {
print("This is not nil.")
}
-
- Forced Unwrapping
- This is usually used when class initialization or implicitly unwrapped optionals.
var button: UIButton!
- Nil-Coalescing Operator
let intLet = 10 + somethingOptional ?? 0
Comments