Ruby 如何指定类型参数
如何使用sorbet指定类型参数 例如,我想用返回泛型类型Ruby 如何指定类型参数,ruby,sorbet,Ruby,Sorbet,如何使用sorbet指定类型参数 例如,我想用返回泛型类型T[a]的a类型的参数来注释一个方法 def build_数组(值) [价值] 结束 输出类型取决于输入类型: build_数组(42)#=>返回数组[整数] 构建数组('42')#=>返回数组[字符串] 您可以尝试对方法定义使用泛型 例如: 参见中的示例,您可以使用类型参数完成此操作: # typed: true extend T::Sig sig do type_parameters(:T) .params(value:
T[a]
的a
类型的参数来注释一个方法
def build_数组(值)
[价值]
结束
输出类型取决于输入类型:
build_数组(42)#=>返回数组[整数]
构建数组('42')#=>返回数组[字符串]
您可以尝试对方法定义使用泛型
例如:
参见中的示例,您可以使用
类型参数
完成此操作:
# typed: true
extend T::Sig
sig do
type_parameters(:T)
.params(value: T.type_parameter(:T))
.returns(T::Array[T.type_parameter(:T)])
end
def build_array(value)
[value]
end
x = build_array(5)
T.reveal_type(build_array(42)) # T::Array[Integer]
T.reveal_type(build_array('42')) # T::Array[String]
这是一本。谢谢!更新@aysamanra通过工作示例提供了更好的答案。工藤对他说。
# typed: true
extend T::Sig
sig do
type_parameters(:T)
.params(value: T.type_parameter(:T))
.returns(T::Array[T.type_parameter(:T)])
end
def build_array(value)
[value]
end
x = build_array(5)
T.reveal_type(build_array(42)) # T::Array[Integer]
T.reveal_type(build_array('42')) # T::Array[String]