List.map中的逻辑

时间:2014-11-12 15:50:55

标签: dart

我想在列表映射中包含逻辑。例如:

我可以这样做:

List projects = urls.map((url) => url.substring(0, 3)).toList();

但是我能以某种方式做这样的事情:

List projects = urls.map((url) {
  if (url.indexOf("?") == -1) {
    url;
  } else {
    url.substring(0, url.indexOf("?"));
  }
}).toList();

1 个答案:

答案 0 :(得分:4)

当然可以。缺少的是return声明 使用短函数格式(=>return是隐式的,并返回表达式的结果。如果使用功能块格式,则必须显式返回结果中要包含的值。如果没有明确的return null,则会返回。

List projects = urls.map((url) {
  if (url.indexOf("?") == -1) {
    return url;
  } else {
    return url.substring(0, url.indexOf("?"));
  }
}).toList();