Я хотел бы написать расширение для кортежей (например,) двух значений в Swift. Например, я хотел бы написать этот swap
метод:Могу ли я продлить Tuples в Swift?
let t = (1, "one")
let s = t.swap
таким образом, что s
бы типа (String, Int)
со значением ("one", 1)
. (Я знаю, что я могу очень легко реализовать функцию swap(t)
, но это меня не интересует.)
Могу ли я это сделать? Я не могу написать правильное имя типа в объявлении extension
.
Кроме того, и я полагаю, что ответ один и тот же, могу ли я сделать 2-кортеж принять данный протокол?
[Быстрая документация для типов] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html) устраняет между * именованными типами * и * составными типами *. Именованные типы могут быть расширены, но кортежи (и функции) являются составными типами. –
Спасибо, Мартин. Похоже, это определенная «нет». Можете ли вы включить его в ответ, чтобы я мог принять его? –
Большинство настроек, которые вы можете выполнять с помощью Tuples, это имена параметров и использование 'typealias' для него. Для чего-то более сложного вы должны использовать 'struct' или определять глобальные функции (может быть, с генериками) – DeFrenZ