1

私は次のコードをコンパイルしようとしていますが、それは失敗します:

import stdlib.core.map

function f()
{
        stringmap(string) myM = StringMap.add("rabbit", "horse", StringMap_empty)
        string rabbit= myM["rabbit"]
}

何故ですか ?このコードは以前のリリースのopa(0.9。*)で機能していたように感じます。

StringMapに保存されているデータにアクセスするにはどうすればよいですか?私のコードでは、データリターンにアクセスしたい

HttpRequest.Generic.get_form_data(HttpRequest.request x).

ありがとう

4

1 に答える 1

2

あなたのコードは、以前のバージョンのOpaでは機能しませんでした。ここで開いた前のスレッドで、OpaとStringMapのいくつかの側面についてすでに説明しました。Opa:stringmap(およびその他のマップ)を操作する方法

要約すれば:

  • Opaは関数型プログラミング言語であり、関数fをのようなバインディングで終わらせることはできませんrabbit = v
  • myM["rabbit"]構文はありませんStringMap.get。あなたの場合は使用する必要があります。

動作するコードは次のとおりです。

import stdlib.core.map

function f()
{
        stringmap(string) myM = StringMap.add("rabbit", "horse", StringMap_empty)
        match (StringMap.get("rabbit", myM)) {
        case {none}: "not found"
        case {some:value}: value
        }
}
于 2012-07-09T10:25:30.387 に答える