1

Boo で 2 つのものを返すメソッドを定義しようとしていますが、コンパイラは次のメッセージを吐き出しています。

「COLON」を期待していましたが、「,」が見つかりました。

メソッドを定義しようとした方法は次のとおりです。

from System.Collections.Generic import HashSet

# ValueParameter is a class defined elsewhere.
def evaluate(s as string, limit as string) as double, HashSet[of ValueParameter]:

ドキュメントを調べましたが、複数のアイテムを返す方法の例はありますが、戻り値の型が複数の型を返すと宣言している例はありません。

4

2 に答える 2

1

複数の戻り値を使用する関数を宣言するwiki でスワップの例を見つけ、-p:booすべての処理が完了した後に AST の最終的な形式のコード表現を出力するフラグを使用してコンパイラを実行しました。この関数のタイプは であると報告されています(int)。double と HashSet など、2 つの異なる型を返す場合、戻り値の型は(object)です。

于 2015-03-29T23:07:47.340 に答える
0

TupleからインポートしSystemて、それを使用してタイプのタプルを返すことができます。

import System

def string_and_int(s as string, i as int) as Tuple[of string, int]:
    return Tuple[of string, int](s, i)

これにより、各要素の型が正しく保持されます。ただし、Boo では、Tuple 型は反復可能でもスライス可能でもないため.Item1.Item2などを使用して取得する必要があることに注意してください。

 example = string_and_int("s", 2)
 print example.Item1
 # 's'
 print example.Item2
 # 2
于 2015-05-15T22:40:31.110 に答える