0

文字列を取得し、さまざまな関数を呼び出して、文字列のいくつかのタイプに応じて結果を取得したいと思います。私のコードは次のようになります:

let convert_string lval value =
if (String.index value '{' > 0) then
   Pretty_utils.sfprintf "%s" convert_1 lval value
else 
   Pretty_utils.sfprintf "%s" convert_2 lval value

ただし、このコードではコンパイラ エラーが発生します。

「この式は string 型ですが、unit 型の式が必要です」。

この問題に詳しい人はいますか?

4

3 に答える 3

3

"%s" 形式は引数を 1 つしか取りませんが、3 を指定しました。おそらく "%a %s" を使用するつもりでした: convert_1 と convert_2 が lval を出力する関数である場合。

let convert_string lval value =
   if (String.index value '{' > 0) then
      Pretty_utils.sfprintf "%a %s" convert_1 lval value
   else 
      Pretty_utils.sfprintf "%a %s" convert_2 lval value
于 2013-07-09T06:39:02.317 に答える