Boo中的多重返回类型语法



我正试图在Boo中定义一个方法,该方法返回两件事,但编译器正在抛出消息:

应为"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]:

我浏览了文档,虽然我看到了如何返回多个项的示例,但没有看到任何示例将返回类型声明为返回多个类型。

我在wiki上找到了交换示例,它声明了一个使用多个返回值的函数,并通过带有-p:boo标志的编译器运行它,该标志在所有处理完成后输出AST最终形式的代码表示。报告该函数的类型为(int)。当您返回两个不同的类型(例如double和HashSet)时,返回类型为(object)

您可以从System导入Tuple,并使用它返回类型为的元组

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

最新更新