今天我在Xcode中打開了我的項目,它需要將當前的Swift轉換爲Swift 3.轉換後,我發現函數的所有參數都有一個下劃線。例如,func didGetWeather(_ weather: Weather) {}
。我試圖拿走下劃線,它工作正常。我想知道那些下劃線是什麼。iOS Swift 3參數在前面有下劃線
回答
在swift3之前默認的第一個參數的標籤沒有在函數調用中列出,在swift3中,未命名參數的方式是在簽名中的參數名稱之前放置一個下劃線,swift3 migrator add下劃線函數第一個參數不會打破依賴於不在函數調用中放置第一個標籤的現有代碼。
是的,它在Swift 3.0中的更新日誌。
所有功能參數有標籤,「_」與第一的功能:
現在下面的所有默認的方法也有(_)。
override func viewWillAppear(_ animated: Bool)
override func didMoveToView(_ view: SKView)
func textFieldShouldReturn(_ textField: UITextField) -> Bool
按照蘋果的文檔:
如果你不想爲一個參數一個參數的標籤,寫一個下劃線(_),而不是該參數的一個明確的說法標籤。
func someFunction(_ firstParameterName: Int, secondParameterName: Int) {
// In the function body, firstParameterName and secondParameterName // refer to the argument values for the first and second parameters. }
someFunction(1, secondParameterName: 2)
如果當你調用函數中的參數有一個參數標籤,該參數必須進行標識。
在斯威夫特2,我們用於聲明類似的功能:
func myFunc(param1 param:String) {}
,我們不得不把它想:
myFunc(param1:)
但後來蘋果推出了一種省略使用下劃線(_)的參數標籤,函數聲明將爲:
func myFunc(_ param:String) {}
,然後我們可以調用函數有兩種方式:
myFunc(_:) // when we don't want to pass any parameters
或者
myFunc(param:"some string") // when we want to pass any parameters
第一種方式(使用_)主要用於當我們想定義一個選擇器。對於如:
someButton.addTarget(self, action: #selector(shareCatalog(_:)), for: .touchUpInside)
- 1. Swift實例變量下劃線前綴?
- 2. 前面帶下劃線的Dojo函數
- 3. 什麼是Swift的catch塊前面的_下劃線?
- 4. iOS - 開始iOS教程 - 在變量之前加下劃線?
- 5. 爲什麼在MongoDb文檔ID前面有下劃線?
- 6. 在Python中使用前導下劃線的參數
- 7. preg_replace下劃線之前的所有數字,比替換下劃線和結束
- 8. 在PAWN中,函數前面的下劃線是什麼意思?
- 9. 顏色只在Swift中加下劃線
- 10. Swift UIButton - 如何刪除下劃線?
- 11. intellij函數參數帶下劃線
- 12. 加下劃線或不加下劃線
- 13. Python方法的雙下劃線*參數*
- 14. 綁定參數strip out下劃線?
- 15. 下劃線忽略可選參數
- 16. 命名參數中的下劃線
- 17. iOS上的下劃線和刪除線
- 18. Swift類中的下劃線屬性?
- 19. 「讓_ = ...」(讓下劃線相等)在Swift中有什麼用處?
- 20. 在Python中,實例變量前面的下劃線是什麼?
- 21. 覆蓋下劃線在另一個元素下面的元素下劃線
- 22. = VLOOKUP不工作與下劃線/下劃線的數字在它
- 23. Mapbox iOS SDK多段線swift 3
- 24. 使用ios圖表的線圖swift 3
- 25. iOS Swift 3 - UIDatePicker
- 26. iOS-Swift 3-SDWebImage
- 27. 函數調用add()之前的_(下劃線)有什麼區別?
- 28. 下劃線下面的「密碼」佈局
- 29. 崇高3多用下劃線
- 30. Typescript - 顯示下劃線參數 - 這裏有什麼問題
檢查[斯威夫特3的這一個https://github.com/apple/swift-evolution/blob/master/proposals/0046-first-label.md –
可能重複:爲什麼符號\ _是在發送者之前在動作參數中添加的?](http://stackoverflow.com/questions/39554622/swift-3-why-symbol-is-added-before-before-sender-in-parameters-of-action) – kennytm