在Ruby中,我有一个数组:
[1, 1, 1, -1, -1, 1, -1, -1]
我想得到:
[-1, -1, -1, 1, 1, -1, 1, 1]
我确信Ruby有一个简单的单行解决方案,但它现在让我失望了。
答案 0 :(得分:7)
此外:
[1, 1, 1, -1, -1, 1, -1, -1].map &:-@
答案 1 :(得分:2)
[1, 1, 1, -1, -1, 1, -1, -1].map {|e| -e}
应该这样做。
答案 2 :(得分:1)
[1, 1, 1, -1, -1, 1, -1, -1].map(&-1.method(:*))
解释它的工作原理:
-1.method(:*)
是我对-1
对象说“你能告诉我一个方法对象,代表你乘以一个变量吗?”和
map(&...)
是我说“不是给你一个文字块,而是给你一些带有&符号的前缀,就像一个块”。
可以看到method
的RDoc文档here。