诸如C#,JavaScript之类的现代语言中常见的迭代方法以及Java 8中(希望如此)的迭代方法是否可以减少循环复杂性对代码的易读性和可支持性的影响?
例如,在C#中,我们可能具有以下代码:
List<String> filteredList = new List<String>();
foreach (String s in originalList){
if (matches(s)){
filteredList.add(s);
}
}
这具有2的简单圈数复杂度。
我们可以轻松地将其重写为:
List<String> filteredList = originalList.where(s => matches(s));
其简单的圈复杂度为0。
这实际上会导致更受支持的代码吗?是否有关于该主题的实际研究?