给一堂课:
class Shell
attr_reader :spiral
def initialize spiral
@spiral = spiral
end
def ?????
# do stuff...
end
end
some_shell = Shell.new([[1,2],[4,3])
some_shell.spiral #=> [[1,2],
# [4,3]]
some_shell.????? #=> [1,2,3,4]给?????命名更有意义吗?
unwrap_spiral或
unwrapped_spiralunwrap_spiral似乎在对some_shell说,“我要你解开那个螺旋”,unwrapped_spiral对some_shell说,“我要你给我一个没有包装的螺旋”。
我在POODR上读过
请求发送方所需内容的消息与告知接收方如何行为的消息之间的区别可能看起来很微妙,但其后果是重大的。
选择unwrapped_spiral似乎更好。
这有意义吗?
发布于 2017-01-14 21:42:47
命名事物是经典的两件(三件)难做的事情之一。撇开笑话不说,我的指导原则如下:
发布于 2017-01-14 21:19:42
Ruby似乎不寻常地强调名称的意图及其含义。例如,unwrap_spiral意味着它可能会就地执行操作,除非有一个像unwrap_spiral!这样的压缩方法表明它没有这样做。
unwrapped_spiral可能太冗长了。现在还不清楚为什么spiral会在unwrapped可能足够的情况下这么多地影响到这一点。
另一件要考虑的事情是按照相同的字母顺序组织在spiral上操作的方法:spiral_unwrap或spiral_unwrapped。
发布于 2017-01-14 22:14:25
实际上,我认为已经有一个名为flatten的方法,它似乎产生了相同的结果。
http://apidock.com/ruby/Array/flatten
如果您有一个更高级的自定义方法,我将使用unspiral
https://stackoverflow.com/questions/41655073
复制相似问题