Перечисление с необработанными значениями

Почему я не могу определить перечисление с необработанными значениями, как это?

enum Edges : (Double, Double) {
    case TopLeft = (0.0, 0.0)
    case TopRight = (1.0, 0.0)
    case BottomLeft = (0.0, 1.0)
    case BottomRight = (1.0, 1.0)
}

Ответы на вопрос(2)

Язык программирования Swift:

Необработанные значения могут быть строками, символами или любыми типами целых чисел или чисел с плавающей точкой.

Вы можете создать собственный геттер:

enum Edges {
    case TopLeft, TopRight, BottomLeft, BottomRight

    var rawValue: (Double, Double) {
        switch self {
            case .TopLeft: return (0, 0)
            case .TopRight: return (1, 0)
            case .BottomLeft: return (0, 1)
            case .BottomRight: return (1, 1)
        }
    }
}
Решение Вопроса

Так как:

Необработанные значения могут быть строками, символами или любыми типами целых чисел или чисел с плавающей точкой.

Но есть альтернативное решение для вас:

enum Edges {
    case TopLeft
    case TopRight
    case BottomLeft
    case BottomRight

    func getTuple() -> (Double, Double) {
        switch self {
        case .TopLeft:
            return (0.0, 0.0)
        case .TopRight:
            return (1.0, 0.0)
        case .BottomLeft:
            return (0.0, 1.0)
        case .BottomRight:
            return (1.0, 1.0)
        }
    }
}

let a = Edges.BottomLeft
a.getTuple() // returning (0, 1)
 user441071527 мая 2016 г., 19:32
но мои данные такие же, как у вас, значит ли это, что я должен объявлять дела раньше?
 luk230227 мая 2016 г., 19:29
@Alexander означает, что вы не должны создавать две разные записи enum с одним и тем же необработанным значением, напримерcase TopLeft = 1, case TopRight = 1, case BottomLeft = 3, case BottomRight = 4 не допускается из-за удвоения1.
 luk230227 мая 2016 г., 19:34
@ Александр нет нет нет, все хорошо, как это в моем ответе. Я включил его только ради завершения. Извините, что немного вас смутил. Это только означает, чтоесли у вас есть собственные rawValues, определенные для некоторого перечисления, тогда вы не должны использовать одно и то же необработанное значение дважды внутри этого перечисления В вашем случае мы даже не используем rawValues ​​и, следовательно, уже в безопасности.
 user441071527 мая 2016 г., 19:28
Спасибо, этот код работает. Но можете ли вы объяснить немного оКаждое необработанное значение должно быть уникальным в объявлении перечисления.

Ваш ответ на вопрос