我想澄清是否不可能在Ruby中声明类型或者它是否没有必要?如果有人想声明数据类型,那么它是可能的.
更新:我的要点是要理解,在理论上,为不会改变类型的变量提供静态类型是否会提高性能.
Ole*_*nyk 13
某些语言(如C或Java)使用"强"或"静态"变量类型.Ruby是一种"动态类型"语言,也就是"鸭子打字",这意味着当分配的数据类型发生变化时,变量会动态地改变自己的类型.
因此,您无法将变量声明为某种严格类型,它始终是动态的.
你想做什么?
您可以创建自己的类:
class Boat
end
如果您想要一种简单的方法来创建一个用于保存数据的类,请使用结构:
class Boat < Struct.new(:name, :speed)
end
b = Boat.new "Martha", 31
您不能像在C中那样声明变量或方法参数的类.相反,您可以在运行时检查类型:
b.is_a?(Boat)    # Includes subclasses of Boat
b.class == Boat
向 Ruby 添加类型的一项提议是由 Yasushi Ando(在parse.y famtour 中出名)的http://bugs.ruby-lang.org/issues/5583。我最喜欢的评论是:
(b) 不确定它如何尊重鸭子打字。我认为整个想法是(可选)烤鸭!