
Photo by
dngri
Swiftで行こう!--Swift5!
macOS 10.14.4、iOS 12.2がリリースされました。そしてXcodeも。そしてSwift5が適用になりました。残念なことにRealmを使おうと思ってましたが、今のところエラーが出てビルドできません。
そんなこんなでまずは何と言ってもSwift5です。変更点を確認しておきたいと思います。
変更点は
Extended String Delimiters String Literals
例示です。
let threeMoreDoubleQuotationMarks = #"""
Here are three more double quotes: """
"""#
ということで、# #を使うことで文字列の中で" "が簡単に使えるようになりました。
let newString = #"hello#"こんにちは”"#
とすると、
hello#"こんにちは”
と出力ができるようになりました。String Literalsについては
#"characters"#
#"""
characters
"""#
のように一列、段をつけた表現もできるようになっています。
dynamicCallable
型を直接呼び出し可能としてマークすることができる。ということみたいです。少しわかりにくいにですが、引数をうまく活用できるというということかなと思います。
基本形は
func dynamicallyCall(withArguments args: [Int]) -> Double
であり、例示としては、
@dynamicCallable
struct TelephoneExchange {
func dynamicallyCall(withArguments phoneNumber: [Int]) {
if phoneNumber == [4, 1, 1] {
print("Get Swift help on forums.swift.org")
} else {
print("Unrecognized number")
}
}
}
で
let dial = TelephoneExchange()
dial(4, 1, 1)
と使います。
"Get Swift help on forums.swift.org"
と表示されます。
dial(8, 6, 7, 5, 3, 0, 9)
とすると、
"Unrecognized number"
と表示されます。
Swift5での変更点、まずは、Stringの拡張と、dynamicCallableの紹介でした。もう少し勉強して使えるようにしたいですね。