两个Map Assignments []和putifabsent之间有区别吗?

时间:2017-03-01 20:30:16

标签: dart

在定义[]之间是否存在任何表现或任何其他差异,或者如果缺席则存在任何其他差异

a.concat(b)

1 个答案:

答案 0 :(得分:5)

除了map['x'] = 123之外,如果密钥'x'已经在地图中,则覆盖密钥map.putifAbsent('x', ()=> 123)的值,而putifAbsent则不会?

请注意getValuePutIfAbsent 返回与提供的密钥对应的值。您可以使用它来获取密钥的值,生成并插入值“即时”。如果从地图中丢失的键(这就是为什么它的第二个参数是一个函数,而不是一个直的值)。

这让我觉得这是方法的用例,但名称public class RQRequestSelectionExt : PXCacheExtension<RQRequestSelection> { #region AllocatedAmount2 public abstract class usrBranchID : IBqlField { } [PXDBInt] [PXUIField(DisplayName = "Branch ID")] [PXDefault(2)] [Branch] public int? UsrBranchID { get; set; } #endregion } public class RQRequestProcessExt : PXGraphExtension<RQRequestProcess> { [PXFilterable(new System.Type[] { })] public RQRequestProcess.RQRequestProcessing Records; public IEnumerable records() { var currentFilter = Base.Filter.Current; var filterExt = currentFilter.GetExtension<RQRequestSelectionExt>(); var newList = Base.Records.Select(); ArrayList result = new ArrayList(); foreach (PXResult<RQRequestLineOwned> listItme in newList) { var row = listItme.GetItem<RQRequestLineOwned>(); if (filterExt.UsrBranchID != null) { if (row.BranchID == filterExt.UsrBranchID) { result.Add(row); } } else { result.Add(row); } } return result; } } 被认为太长了。