見出し画像

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の紹介でした。もう少し勉強して使えるようにしたいですね。

この記事が気に入ったらサポートをしてみませんか?