Immutable.js ссылочный равенство

TFS поддерживает внешний Git. Вы можете связать рабочие элементы с внешним git с помощью REST API, см. Рабочие элементы - Получить рабочий элемент .

Вы также можете попробовать с этим расширением: External Git Интеграция WorkItem . Эта задача позволяет связать внешние изменения git с рабочим элементом, определенным в комментарии последнего коммита

1
задан Kevin 19 January 2019 в 23:44
поделиться

1 ответ

Во-первых, этот console.log(a.equals(b)); возвращает false на самом деле:

Теперь ваш вопрос, как описано в Immutable.js здесь в разделе «Возврат себя при оптимизации без операции». chapter:

Когда это возможно, Immutable.js избегает создания новых объектов для обновлений, в которых не произошло изменений в значении, чтобы обеспечить эффективную проверку на равенство ссылок для быстрого определения, не произошло ли изменений.

Вот этот пример:

const { Map } = require('immutable');
const originalMap = Map({ a: 1, b: 2, c: 3 });
const updatedMap = originalMap.set('b', 2);
updatedMap === originalMap; // No-op .set() returned the original reference.

Однако обновления, которые приводят к изменению, возвращают новую ссылку. Каждая из этих операций происходит независимо, поэтому два одинаковых обновления не будут возвращать одну и ту же ссылку:

И этот пример:

const { Map } = require('immutable');
const originalMap = Map({ a: 1, b: 2, c: 3 });
const updatedMap = originalMap.set('b', 1000);
// New instance, leaving the original immutable.
updatedMap !== originalMap;
const anotherUpdatedMap = originalMap.set('b', 1000);
// Despite both the results of the same operation, each created a new reference.
anotherUpdatedMap !== updatedMap;
// However the two are value equal.
anotherUpdatedMap.equals(updatedMap);

Поскольку вы меняете значение, [113 ] возвращает новую ссылку. Поэтому они не равны по ссылке.

Надеюсь, я помог:)

0
ответ дан SomoKRoceS 19 January 2019 в 23:44
поделиться
Другие вопросы по тегам:

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