Boo 中的多个 Return 类型语法?
Multiple Return Type Syntax in Boo?
我试图在 Boo 中定义一个方法,其中 return 有两件事,但编译器吐出了消息:
expecting "COLON", found ','.
以下是我尝试定义方法的方式:
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]:
我查看了文档,虽然我看到了如何 return 多个项目的示例,但我没有看到任何示例将 return 类型声明为 return多种类型。
我找到了 the swap example on the wiki,它声明了一个使用多个 return 值的函数,并且 运行 它通过带有 -p:boo
标志的编译器输出了一个代码完成所有处理后 AST 的最终形式的表示。它报告此函数的类型是(int)
。当你 return 两个不同的类型时,比如你的 double 和 HashSet,return 类型是 (object)
.
您可以从 System
导入 Tuple
并将其用于 return 具有以下类型的元组:
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 中,元组类型不可迭代或可切片,因此您必须使用 .Item1
、.Item2
等来获取它:
example = string_and_int("s", 2)
print example.Item1
# 's'
print example.Item2
# 2
我试图在 Boo 中定义一个方法,其中 return 有两件事,但编译器吐出了消息:
expecting "COLON", found ','.
以下是我尝试定义方法的方式:
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]:
我查看了文档,虽然我看到了如何 return 多个项目的示例,但我没有看到任何示例将 return 类型声明为 return多种类型。
我找到了 the swap example on the wiki,它声明了一个使用多个 return 值的函数,并且 运行 它通过带有 -p:boo
标志的编译器输出了一个代码完成所有处理后 AST 的最终形式的表示。它报告此函数的类型是(int)
。当你 return 两个不同的类型时,比如你的 double 和 HashSet,return 类型是 (object)
.
您可以从 System
导入 Tuple
并将其用于 return 具有以下类型的元组:
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 中,元组类型不可迭代或可切片,因此您必须使用 .Item1
、.Item2
等来获取它:
example = string_and_int("s", 2)
print example.Item1
# 's'
print example.Item2
# 2