简短回答:Ruby 本身没有静态类型(static typing),它是动态类型语言(dynamically typed)。
不过可以补充几点重要的细节:
在普通 Ruby(MRI / CRuby)中:
示例:
x = 1
x = "hello" # 完全合法
虽然不是语言核心,但社区和工具提供了静态类型支持:
示例(Sorbet):
# typed: true
extend T::Sig
sig { params(x: Integer).returns(String) }
def foo(x)
x.to_s
end
| 方面 | Ruby |
|---|---|
| 语言本质 | 动态类型 |
| 是否强制静态类型 | 否 |
| 是否支持静态类型 | 是(通过工具) |
| 常见用途 | 脚本、Web(Rails)、原型 |
如果你愿意,我也可以对比 Ruby vs Python vs TypeScript 的类型系统,或者讲讲 Rails 项目里怎么用 Sorbet。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。