8

Dart では、(immutable/value/non-object) out または reference パラメータに相当するコードをどのようにコーディングすればよいでしょうか?

たとえば、C# 風の場合、次のようにコーディングします。

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;  
}
4

2 に答える 2

5

これはDartでは不可能です。構造体の値型、ref、またはvalキーワードのサポートは、週と同じようにDartメーリングリストで議論されました。ここにあなたがあなたの欲望を知らせるべきである議論へのリンクがあります:

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];
}
于 2012-08-22T21:30:50.163 に答える