首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查变量是否为Ruby中的字符串

检查变量是否为Ruby中的字符串
EN

Stack Overflow用户
提问于 2011-10-13 12:18:30
回答 5查看 143.6K关注 0票数 147

还有什么比下面的内容更地道的吗?

代码语言:javascript
复制
foo.class == String
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-13 12:25:50

我想你是在找instance_of?。对于派生类的实例,is_a?kind_of?将返回true。

代码语言:javascript
复制
class X < String
end

foo = X.new

foo.is_a? String         # true
foo.kind_of? String      # true
foo.instance_of? String  # false
foo.instance_of? X       # true
票数 235
EN

Stack Overflow用户

发布于 2011-10-13 13:28:31

一种更像鸭子类型的方法应该是

代码语言:javascript
复制
foo.respond_to?(:to_str)

to_str表明对象的类可能不是字符串的实际后代,但对象本身非常类似于字符串(stringy?)。

票数 30
EN

Stack Overflow用户

发布于 2011-10-13 12:20:34

您可以执行以下操作:

代码语言:javascript
复制
foo.instance_of?(String)

更普遍的是:

代码语言:javascript
复制
foo.kind_of?(String)
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7749416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档