我正试图在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