SWIFT 无序函数参数

SWIFT unordered function parameters

(SWIFT 特别是) 可以说我有这样的功能

static func * (complex: i, number: Int) -> i{
    return i(number*complex.times)
}

如您所见,我希望能够将一个复数乘以一个整数。 但是,这仅在复数位于左侧时有效(例如:i(5) * 5) 所以我可以做 i(10) * 8 但不能做 8 * i(10) 因为函数参数必须按一定顺序排列。我知道我可以创建第二个重载函数,但是有什么办法解决它吗?我正在学习 swift,如果能学到一些提示和技巧会很好。 谢谢, 来自我

不,没有,但您可以编写一个函数来调用另一个函数,以避免重复实现。

static func * (complex: i, number: Int) -> i{
    return i(number*complex.times)
}

static func * (number: Int, complex: i) -> i{
    return complex * number
}

不,Swift 函数的参数有特定的顺序。 Swift 不支持无序参数。正如克雷格在他的回答中指出的那样,您可以提供一个函数的多个版本,这些函数以不同的顺序获取参数,并让它们都调用实际实现代码的同一个函数。