码等效的在达特出或参考参数(Code equivalent of out or reference

2019-09-21 11:46发布

在飞镖,我将如何最好的码的(不可变/值/非对象)的等效出或参考参数

例如,在C#-ish我会编:

function void example()
{
  int result = 0;
  if (tryFindResult(anObject, ref result))
    processResult(result);
  else
    processForNoResult();
}

function bool tryFindResult(Object obj, ref int result)
{
  if (obj.Contains("what I'm looking for"))
  {
    result = aValue;
    return true;
  }
  return false;  
}

Answer 1:

这是不可能的飞镖。 对于结构值类型,ref或VAL关键字支持是达特邮件列表就像本周讨论。 这里的讨论,你应该让你的愿望是已知的链接:

https://groups.google.com/a/dartlang.org/d/topic/misc/iP5TiJMW1F8/discussion

达特-方法是:

void example() {
  List result = tryFindResult(anObject);
  if (result[0]) {
    processResult(result[1]);
  } else {
    processForNoResult();
  }
}

List tryFindResult(Object obj) {
  if (obj.contains("What I'm looking for)) {
    return [true, aValue];
  }
  return [false, null];
}


文章来源: Code equivalent of out or reference parameters in Dart
标签: dart