1

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

期待“冒号”,发现“,”。

这是我尝试定义方法的方式:

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

这会正确保留每个元素的类型。.Item1但是请注意,在 Boo 中,无论如何,元组类型是不可迭代或不可切片的,因此您必须使用等来获取它.Item2

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