What’s new in Swift 4?
This post hasn't been updated for 3 years
I. Giới thiệu
Apple đã phát hành Swift 4.0 và bạn có thể download chúng tại link đây. Và trong bài viết này tôi sẽ giới thiệu với các bạn một số tính năng được thêm vào trong swift 4.0.
Installing swift-4.0 Snapshot Toolchain
- Tải xcode section cho swift 4.0 tại https://swift.org/download/#snapshots
- Sau khi install swift-4.0 toolchain vào Xcode -> Toolchain và chọn swift 4.0 snapshot. Sau đó restart lại Xcode.
String will be treated as collection -- SE-0163
Vẫn giống như swift 1.x, String được coi như là một colllection. Swift 4.0 bạn không cần phải viết string.characters.xxx mà chỉ cần string.xxx
let message = "Message!"
message.count // no need of message.characters.count
for character in message { // no need of message.characters
print(character)
}
và output sẽ như sau:
8
M
e
s
s
a
g
e
!
MutableCollection.SwapAt - SE-0173
Swap func trong collection
var names = [“Vipul”,”Vinay”,”Vishal”,”Akshay”]
names.swapAt(2,3)
và Output:
[“Vipul”, “Vinay”, “Akshay”, “Vishal”]
One-sided Ranges— SE-0172
Tính năng được lấy cảm hứng từ Python, và nó thật tuyệt vời. Bây giờ cũng ta có thể sử dụng 1 bên của Ranges
let names = [“Vipul”, “Vishal”, “Vinay”, “Vikas”, “Vineet”]
let firstTwoString = names[..<2]
let lastThreeString = names[2…]
print(firstTwoString)
print(lastThreeString)
Ouput:
["Vipul", "Vishal"] // [..<2] => [0,1]
["Vinay", "Vikas", "Vineet"] // names[2…] => [2,3,4]
Swift Archival & Serialization — SE-0166
Một điều tuyệt vời mà swift 4 đem lại là chúng ta có thể parse JSON 1 cách dễ dàng mà không cần dùng đến thư viện bên ngoài.
Define Models
struct Address:Codable {
var street:String
var zip:String
var city:String
var state:String
}
struct Person: Codable {
var name: String
var address: Address
}
let address = Address(street: “Apple Bay Street”, zip: “94608”, city: “Emeryville”, state: “California”)
let person = Person(name: “Steve Jobs”, address: address)
Encoding ( Model -> JSON )
let encoder = JSONEncoder() // Define JSONEncoder
if let encoded = try? encoder.encode(person) {
if let json = String(data: encoded, encoding: .utf8) {
print(json)
}
}
Output:
{“name”:”Steve Jobs”,”address”:{“state”:”California”,”street”:”Apple Bay Street”,”zip”:”94608",”city”:”Emeryville”}}
Decoding ( JSON -> Model )
let decoder = JSONDecoder()
if let decoded = try? decoder.decode(Person.self, from: encoded) {
print(decoded.name)
print(decoded.address)
}
Output:
Steve Jobs
Address(street: “Apple Bay Street”, zip: “94608”, city: “Emeryville”, state: “California”)
Tổng kết
Ở trên, tôi đã giới thiệu một vài tính năng được thêm vào trong swift 4.0 và swift 4.0 sẽ có thêm nhiều tính năng thú vị khác chúng cùng khám phá khi bản chính thức đầu tiên được dự kiến phát hành đầu tháng 6 trong sự kiện Apple WWDC 2017. Chúng ta cùng chờ đợi )) Nguồn:
All Rights Reserved