【问题标题】:Testing if an object is a string测试对象是否为字符串
【发布时间】:2013-04-30 19:39:30
【问题描述】:

我有一个操作字符串的函数;但是,有时我的输入还不是字符串。例如,它可能是一个路径对象。我需要将其转换为字符串,因为我想调用像.gsub 这样的方法。

我的问题似乎有点简单,但我正在讨论将对象转换为字符串的最佳方法。

我目前有两种选择:

str = str.to_s unless str.is_a? String

str = str.to_s

第二种方法要简单得多,但第一种方法实际上描述了正在发生的事情。我想知道这两种方法中哪一种更好用,或者是否有我没想到的更好方法?

【问题讨论】:

  • 定义String#to_s 的事实是来自Ruby 开发人员的一条消息,您应该使用第二个。像这样的情况是String#to_s 有用的唯一情况。

标签: ruby coding-style


【解决方案1】:

我更喜欢第二个。

如果参数/变量不是字符串,我希望参数/变量不命名为 str

将其命名为str 暗示字符串,但是代码看起来很傻,而且更难推理。

【讨论】:

    【解决方案2】:

    我更喜欢第二个。它更短、更简单,还描述了你想要什么(任何程序员都会明白会发生什么)。性能上也没有显着差异。

    【讨论】:

      【解决方案3】:

      毫不犹豫地选择第二种方法。

      第一个很复杂,并没有真正增加任何意义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-11
        • 2013-08-05
        • 2018-08-10
        • 1970-01-01
        • 2010-12-17
        • 2012-04-05
        • 2012-04-25
        相关资源
        最近更新 更多