Objective C - Как сравнить массивы и извлечь различие?

>>> a = range(10)
>>> [val for val in a for _ in (0, 1)]
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9]

N.B. _ традиционно используется в качестве имени переменной-заполнителя, когда вы не хотите ничего делать с содержимым переменной. В этом случае он просто используется для генерации двух значений каждый раз во внешнем цикле.

Чтобы превратить это из списка в генератор, замените квадратные скобки круглыми скобками.

24
задан Community 23 May 2017 в 12:02
поделиться

2 ответа

После некоторого дополнительного исследования я нашел ответы. Ответы, потому что есть много вещей, которые могут предотвратить ленивую загрузку в NHibernate.

  1. Запрос против сеанса.Загрузка: При получении элемента через session.Load () вы получаете прокси. Но как только вы обращаетесь к любому свойству , скажем, к URL , извлекается объект, включая все его ассоциации, которые не поддерживают отложенную загрузку.

  2. ссылка на свойство: Ленивая загрузка работает только с идентификатором объекта. Когда ассоциация свойств разрешается через другой столбец в целевой сущности, NH охотно ее извлекает. Не то чтобы это было бы возможно, это просто не реализовано: Ошибка

  3. not-found = "ignore" позволяет недопустимым внешним ключам, то есть если указанный объект не является t found NH инициализирует свойство нулевым значением. NH не перехватывает доступ к свойствам для отложенной загрузки, а вместо этого назначает прокси объекта. С not-found = "ignore" он не может решить, должно ли свойство быть установлено равным null или прокси для данного, возможно, недействительного внешнего ключа. Эту проблему, возможно, можно решить путем перехвата доступа к свойству.

  4. При отключении not-found = "ignore" и ссылка на свойство экспорт схемы генерирует ограничения, которые обеспечивают циркулярная ссылка. Не хорошо! Тогда правильным отображением будет ограниченное однозначное отношение, где ключ для HippoAccountSync должен иметь генератор внешний .

100
ответ дан 28 November 2019 в 22:09
поделиться

Если повторяющиеся элементы не значимы в массивах, вы можете использовать операцию minusSet: для NSMutableSet :

NSMutableArray *firstArray = [NSMutableArray arrayWithObjects:@"Bill", @"Ben", @"Chris", @"Melissa", nil];
NSMutableArray *secondArray = [NSMutableArray arrayWithObjects:@"Bill", @"Paul", nil];

NSSet *firstSet = [NSSet setWithArray:firstArray];
NSMutableSet *secondSet = [NSMutableSet setWithCapacity:[secondArray count]];
[secondSet addObjectsFromArray:secondArray];

[secondSet minusSet:firstSet]; // result is in `secondSet`
10
ответ дан 28 November 2019 в 22:09
поделиться
Другие вопросы по тегам:

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