簡體   English   中英

Swift 允許聲明與參數名稱相同的變量名稱或 function 名稱

[英]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 名稱同名的變量。 誰能幫我解釋一下。 謝謝!

  1. foofoo(param:是不同的簽名。

    然而這是不允許的

    let foo = foo(param: 12)

    你得到錯誤

    在其自身初始值內使用的變量

  2. 參數標簽和局部變量位於不同的名稱空間中。 局部變量隱藏參數 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM