Swift5.4 つまみ食い【SR-10069編】
ということで今回も Swift5.4
をちょろっと見てみます👀
SR-10069 requested the ability to overload functions in local contexts, which in practice means nested functions can now be overloaded so that Swift chooses which one to run based on the types that are used.
参照: https://www.hackingwithswift.com/articles/228/whats-new-in-swift-5-4
Swift5.4
からローカル関数内のオーバロードがサポートされたようです。
今までも関数外でのオーバーロードについては下記のようにサポートされてきましたが、関数内でのオーバーロードはサポートされていませんでした。
class Hoge { var i: Int = 0 var s: String = "" var b: Bool = false func update(value: Int) { i = value } func update(value: String) { s = value } func update(value: Bool) { b = value } }
これが、Swift5.4
からは関数内でもオーバーロードを記述することができるようになります。
struct Butter { } struct Flour { } struct Sugar { } func makeCookies() { func add(item: Butter) { print("Adding butter…") } func add(item: Flour) { print("Adding flour…") } func add(item: Sugar) { print("Adding sugar…") } add(item: Butter()) add(item: Flour()) add(item: Sugar()) }
という感じで本日も以上になります🍺