gpt4 book ai didi

ruby - 如何指定类型参数

转载 作者:太空宇宙 更新时间:2023-11-03 17:42:30 25 4
gpt4 key购买 nike

如何使用sorbet指定类型参数?

例如,我想用 A 类型的参数注释一个返回泛型类型 T[A] 的方法。

def build_array(value) 
[value]
end

输出类型取决于输入类型:

build_array(42) #=> return Array[Integer]
build_array('42') #=> return Array[String]

最佳答案

您可以使用 type_parameters 完成此操作:

# 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]

这是一个 sorbet.run link with the above code .

关于ruby - 如何指定类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56709617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com