[英]Swift allows declaring variable name the same with parameter name or function name
我是 Swift 的新手,我不太明白 Xcode 如何不會在下面的代碼中拋出錯誤
func foo(param: Int)->Int{
let param: Int = 5
return param
}
var foo: Int = 5
print(foo)
如您所見,Swift 允許我聲明與 function 參數同名的變量param
。 我還可以聲明一個與 function 名稱同名的變量。 誰能幫我解釋一下。 謝謝!
foo
和foo(param:
是不同的簽名。
然而這是不允許的
let foo = foo(param: 12)
你得到錯誤
在其自身初始值內使用的變量
參數標簽和局部變量位於不同的名稱空間中。 局部變量隱藏參數 label。
甚至可以在結構中聲明成員param
。 要解決結構成員,您必須添加self
struct Foo { var param = 0 mutating func foo(param: Int) -> Int { let param = 10 + param // 15 self.param = param * 20 // 300 return param // 15 } } var f = Foo() print(f.foo(param: 5)) // 15 print(f.param) // 300
在這種情況下,Function 和實例變量是兩個不同的實體。 Swift在function沒有參數時,不允許function和變量名相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.