4

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

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

我目前有两种选择:

str = str.to_s unless str.is_a? String

或者

str = str.to_s

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

4

3 回答 3

4

我更喜欢第二个。

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

命名它str 意味着字符串,但是代码看起来很傻,而且更难推理。

于 2013-04-30T19:47:02.897 回答
3

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

于 2013-04-30T19:43:35.617 回答
1

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

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

于 2013-04-30T19:46:40.970 回答