var a = a や if let b = b {} のような紛らわしい構文も使えるswiftのシャドウイング
-- この記事はXcode8 beta5での動作を元に書いていますが、正式リリースまでに動作が変わる可能性があります。--
実はシャドウイングというのは初めて聞きました。
どうやら変数名を使い回すことをシャドウイングと言うようです。
swift-evolutionのこの提案でシャドウイングについて触れています。
ここではSwift3で関数のパラメータにvar宣言が使えなくなるため、機械的に置き換える方法として下記のコードを紹介しています。
func foo(i: Int) {
var i = i
}
この書き方、他でも使えるかと思って試してみたらエラーになりました。
let i = 3
do {
var i = i // Error: Variable used within its own initial value
}
でも、Optional Bindingではシャドウイングを使うことができます。
let b: Int? = 3
if let b = b {
print(b) // 3
}
print(b) // Optional(3)
他にもシャドウイングが使えるパターンがあるかもしれません。
シャドウイングは変数名を決めるのが煩わしい時は便利です。
しかし、コードを誤認する可能性もあります。
複数人で作業する時はコーディング規約などでルールを明確化する必要があるでしょう。
Author And Source
この問題について(var a = a や if let b = b {} のような紛らわしい構文も使えるswiftのシャドウイング), 我々は、より多くの情報をここで見つけました https://qiita.com/giigame/items/bdd7ab74ec8321b73b97著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .