Ruby 有没有模糊的 1 == ‘1’

chenge · 2013年03月14日 · 最后由 5long 回复于 2013年03月14日 · 2717 次阅读

记得 php 是这样的。

ruby 可以么,有时候模糊比较方便。

1.to_s == '1' ?

Ruby 是强类型的语言。这里只能自己手动转换类型/用元编程的方式劫持 Integer#== 来转换,不过我感觉还是用显式转换来准确表意好些。

#3 楼 @5long 强类型?强类型不是在变量声明的时候确定变量类型么。个人认为 是否强类型 在脚本语言里面很难定性。

#4 楼 @zzWinD 你所描述的行为我记得应该叫做静态类型。lz 的疑问是"对不同类型的值操作时是否会被自动/隐式转换".

Ruby 是动态类型 + 强类型 PHP 是动态类型 + 弱类型 Java 是静态类型 + 强类型

不过后半句我还是赞同的,在元编程 (可以重载运算符) 的环境里,类型转换是有可能隐式发生的。

参考:http://en.wikipedia.org/wiki/Type_system

需要 登录 后方可回复, 如果你还没有账号请 注册新账号