max(_:_:) и min(_:_:) в расширении Int в Swift

Почему max(::) и min(::) не разрешены в расширении Swift Int, например:

extension Int {
    func some(low: Int, high: Int) -> Int {
        return max(low, high)
    }
}

Ошибка говорит: Static member 'max' cannot be used on instance of type'Int'


person iKK    schedule 16.11.2018    source источник
comment
Сравните stackoverflow.com/q/39602298/2976878 — сейчас вам нужно сказать Swift.max(low, high).   -  person Hamish    schedule 16.11.2018
comment
Здесь компилятору нужна помощь. Он думает, что вы имеете в виду developer.apple.com/documentation/swift/int/1540171- макс   -  person matt    schedule 16.11.2018


Ответы (1)


Здесь компилятору нужна помощь. Он думает, что вы имеете в виду https://developer.apple.com/documentation/swift/int/1540171-max

Как говорит Хэмиш, вы можете устранить неоднозначность в этом контексте, чтобы указать глобальную функцию, назвав ее Swift.max.

person matt    schedule 16.11.2018
comment
Идеальный - спасибо, Мэтт. Я не знал, что есть ключевое слово Swift.. - person iKK; 17.11.2018
comment
Возможно, вы захотите узнать о пространствах имен и модулях, очень простых вещах Swift. См. apeth.com/swiftBook/ch01.html#_modules. - person matt; 17.11.2018