Плагин знатока, выполняющий другой плагин

У вас есть беспорядок, потому что словарь, значения которого могут быть nil, представляет вам перспективу с двумя обернутыми опциями , и поэтому два вида nil , Вы получаете nil, если ключ отсутствует, а затем nil, который вы получаете, если ключ не отсутствует, и вы разворачиваете извлеченный результат. И, к сожалению, вы тестируете на детской площадке, которая является плохим местом для изучения различия.

Чтобы понять, что я имею в виду, рассмотрим только следующее:

var d : [String:Int?] = ["Matt":1]
let val = d["Matt"]

Что является типом val? Это Int?? - Int, завернутый в опцию, завернутый в другой Необязательный. Это потому, что значение внутри словаря было, по определению, Int, завернутым в Необязательный, а затем извлечение значения его ключами, что в другое Необязательно.

Итак, давайте немного поработаем и сделаем так:

var d : [String:Int?] = ["Matt":nil]
let val = d["Matt"]

Что такое val? Ну, детская площадка может сказать , что это nil, но правда более сложна; это nil , завернутый в другой Необязательный . Это проще всего увидеть, если вы печатаете val, и в этом случае вы получаете, а не nil, но "Optional(nil)".

Но если мы попробуем что-нибудь, ключ отсутствует, мы получаем другой ответ :

let val2 = d["Alex"]

Это действительно - nil, означающее, что ключ отсутствует. И если мы печатаем val2, получаем "nil". Игровая площадка не делает различия (она говорит nil как для val, так и val2), но преобразование в String (что делает print) показывает разницу.

So часть проблемы - это вся эта двойная упаковка, а другая часть состоит в том, что игровая площадка представляет собой двойную обертку Необязательно очень вводящим в заблуждение способом.

MORAL 1: Словарь, тип значения которого является Необязательно может оказаться очень сложным.

MORAL 2: Игровые площадки - это работа дьявола. Избежать их. Используйте реальное приложение и используйте ведение журнала на консоли или панель переменных отладчика, чтобы узнать, что происходит на самом деле.

24
задан Rich Seller 30 July 2009 в 20:53
поделиться

1 ответ

Используйте исполнитель Mojo Знатока Don Brown известности Atlassian для выполнения любого другого произвольного плагина.

Исполнитель Mojo позволяет для выполнения других Заклинаний (плагины) в Знатоке 2 плагина, позволяя Вам легко создать Знатока 2 плагина, которые состоят из других плагинов.

41
ответ дан Jesse Glick 28 November 2019 в 23:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: