在飞镖,我将如何最好的码的(不可变/值/非对象)的等效出或参考参数 ?
例如,在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;
}
这是不可能的飞镖。 对于结构值类型,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];
}