Как две приведенные ниже функции, какую функцию Swift выполнит первой?
Есть ли образец этого?
Потому что я столкнулся с двумя более сложными функциями, чем эта. Сначала выполняется «Любой», независимо от того, какой порядок я им делаю (потому что я предполагаю, что он выполняется с адреса памяти, но, похоже, нет).
Некоторые говорят, что он выполнит "Любой" (в моем другом случае) из-за более широкого диапазона структуры или класса. Но приведенный ниже пример говорит об обратном.
Интересно, почему и как это происходит или где я могу получить ответ.
import UIKit
func add(_ x: Int,_ y: Any) -> Int {
return 3
}
func add(_ a: Int,_ b: Int) -> Int {
return 1
}
print(add(2, 3))
// "1\n"
print(add(2, "3"))
// "3\n"
вот мой другой случай:
let constraint = titleLabel.layout(.width, .lessThanOrEqual, 122)
это то, что я ожидаю выполнить:
func layout(_ attribute: NSLayoutAttribute, _ relatedBy: NSLayoutRelation, _ constant: CGFloat, active: Bool = true, priority: UILayoutPriority = .init(1000)) -> NSLayoutConstraint {}
но на самом деле он выполняет это:
func layout(_ attribute: NSLayoutAttribute, _ relatedBy: NSLayoutRelation, _ toItem: Any?, active: Bool = true, priority: UILayoutPriority = .init(1000)) -> NSLayoutConstraint {}
если swift выбирает наиболее конкретный вариант, разве он не должен выполнять "Float"?