воскресенье, 22 декабря 2019 г.

Перечисления

    Перечисления - способ создания уникальных числовых констант. Отдельную константу я буду называть вариантом перечисления. Каждый созданный вариант имеет тип UInt64, имеет случайное значение отличное от 0, а также не бывает двух вариантов с одинаковым значением. Вспомним про магазин из предыдущей статьи. Предположим раньше магазин торговал только городскими велосипедами, а теперь решил начать торговать ещё шоссейными и горными, мы конечно можем добавить новый член типа имеющий тип [UInt8], но слайсы занимают гораздо больше места, а также медленнее работают чем числа встроенные в язык. Поэтому лучше создать новый член типа с типом UInt64 и создать для него варианты перечисления.
Пример:

enums
    bt_city
    bt_road
    bt_mountain

type Bicycle
    brand, model [UInt8]
    buyPrice, sellPrice, discount UInt16
    eBike Bool
    type UInt64

func bikeTypeToString(bikeType)
    rules
        final = bikeType == UInt64
        result = [UInt8]
    case bikeType of
        bt_city
            result = "city"
        bt_road
            result = "road"
        bt_mountain
            result = "mountain"

func toString(bicycle)
    rules
        final = bicycle
        result = [UInt8]
    result = bicycle.brand.join({
        bicycle.model, " ",
        bicycle.buyPrice.toString(), " ",
        bicycle.sellPrice.toString(), " ",
        bicycle.discount.toString(), " ",
        bicycle.eBike.toString(), " ",
        bicycle.type.bikeTypeToString())
    }
Имя варианта должно соответствовать следующим правилам:

  • начинается со строчной буквы
  • содержит только буквы латинского алфавита, цифры и знак подчёркивания (_)
  • не может содержать два знака подчёркивания идущих подряд
  • должно иметь хотя бы один знак подчеркивания

Комментариев нет:

Отправить комментарий

Пожалуйста без мата и оскорблений. Если хотите сообщить об ошибках, для этого есть форма обратной связи.