Обновление Устранена ошибка компиляции, теперь единственной проблемой с кодом является сортировка dict в алфавитном порядке для печати.Как отсортировать dict в genie
Я рефакторинг argument parser из python в Genie, однако я обнаружил, что застрял в том, как сортировать элементы формы dict перед добавлением их в список.
В питоне это так просто, как:
lines.append("Options:")
if len(self.options):
for name, option in sorted(self.options.items()):
lines.append(" %s: %s" % (name, option.values))
else:
lines.append(" [none]")
self.options объявлен self.options = {}
Теперь, как можно распечатать содержимое Dict, но отсортирован?
Вот код, где я застрял:
def ListOptions()
var lines = new list of string
lines.add("Options:")
if _options.size != 0
for name in _options.keys
lines.add(" %s: %s" % (name, _options.values))
else
lines.add(" [none]")
ListOptions является методом в классе, и я объявил _options как _options: новый Dict строки, строки
Там нет компиляции ошибки в этом разделе кода больше. Мой вопрос заключается в том, как отсортировать элементы dict перед добавлением их в список lines
?
Когда вы говорите «парсер аргументов», вы имеете в виду аргументы, переданные из командной строки в программу? – AlThomas
Я имею в виду, как в [здесь] (https://github.com/dmulholland/clio) ... Но я думаю, что я пытаюсь достичь, не имеет ничего общего с этой проблемой, с которой я столкнулся ... Проблемы в том, как для итерации по типу, который был отсортирован в алфавитном порядке ... –
Если вы ищете аргументы командной строки, вы должны смотреть на OptionContext и OptionEntry GLib. Это полезно для большинства целей. Например, в Vala см. Http://stackoverflow.com/questions/33431446/how-to-do-optioncontext-parsing-on-an-instance – AlThomas