Swift: перечислять имена со специальными символами (например .) в них

#swift #enums #lexical

#быстрый #перечисления #лексический

Вопрос:

как я могу создать перечисление с «.» или «-» в их именах? Я хочу что-то вроде:

  enum Options: String {
     case option1, option2, option2.1, option3
 }
 

Использование обратных меток (`) не работает. Есть ли какой-нибудь обходной путь, который я могу сделать?

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

1. Вы не можете использовать _ или какой-либо другой одобренный символ. Обратные галочки следует использовать, если вы хотите, чтобы имя идентификатора совпадало с зарезервированным словом в swift, например class или case или enum

2. @JoakimDanielson ты имеешь в виду «ты можешь»

3. @LeoDabus, возможно, недоразумение. Мое «не могу» относится к первому предложению в вопросе, а не к последнему. Если это не так, пожалуйста, объясните, в чем я ошибаюсь.

4. извините, я пропустил там слово «so». Пунктуация там поможет правильно ее прочитать

Ответ №1:

Ни один символ не может быть частью имени идентификатора. См. https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html для грамматики.

Ответ №2:

Как говорит Гереон, в принципе, вы не можете. Это очень архаичная система. Но если вы сможете найти хороший смайлик, который вам нравится, это сработает.

 enum Option: String {
  case option🧉1, option🍩2, option2🌑1, option🥩3
}
 

Также обратите внимание, что каждый из них является опцией, а не опцией.

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

1. ИМО было бы лучше использовать что-то вроде option2a

2. Я ненавижу подчеркивания, но я все равно использую их много, потому что считаю, что они лучше всего заменяют точки. например developer.apple.com/documentation/metal/mtlfeatureset