3
A
回答
1
<=> the "spaceship" or comparison operator
=== the "trequals" or case matching operator
5
方法签名末尾的&符将抓住并期待一个块。
def foo(bar, &block)
block.call (bar += 1)
end
的符号也可以以这种形式用于调用to_proc
,让调用:address
方法用一个符号(例如是从其他地方借来)
@webs ||= Web.find(:all).index_by &:address
像+=
和-=
快捷操作便利。
不是一个运算符,而是Rails使得另一个捷径成为可能。这将让你栏时,foo是要么nil?
或false
a = foo || bar
在“经营者”的方面,我发现了一个非官方的东西在这里以供参考:Ruby operators
+0
谢谢。 foo ||酒吧对我来说很方便 – AntonAL 2011-03-03 07:39:21
5
我发现splat operator是的一个最棘手的Ruby操作符:
它拆分数组:
a,b,c = *[1,2,3]
或者建立阵列:
*a = 1,2,3
它还可在case
语句中使用:
first = ["one", "two"]
second = ["three", "four"]
case number
when *first
"first"
when *second
"second"
end
它可以被用作用于可变参数函数的参数:
def stuff *args
args.join('|')
end
由于它被用于两者(分裂和创建数组),我总是必须在使用它之前检查语法。它可以用于很多目的(如将哈希转换为数组),我真的觉得很难掌握。
相关问题
- 1. Ruby的&&运营商
- 2. 整数运营商
- 3. Ruby on Rails:运营商
- 4. 空 - 结合运营商和运营商&&
- 5. 或运营商与三元运营商
- 6. 比较运营商(飞船运营商)如何在三元运营商处理
- 7. Ruby的等价于C#的??运营商
- 8. 运营商在python
- 9. ??运营商在SQL
- 10. = - 运营商在java中
- 11. 运营商=在C++中
- 12. &&运营商JSONpath()
- 13. '运营商='
- 14. C#? :运营商
- 15. 运营商
- 16. jQuery @运营商?
- 17. +运营商
- 18. Javascript:?运营商
- 19. iPhone运营商
- 20. Bigint +运营商
- 21. 运营商
- 22. &&和||运营商
- 23. Java ==!= && ||运营商?
- 24. Ternery运营商
- 25. Ternary?运营商VS传统的if-else运营商在C#
- 26. C++?运营商,运营商继续在for循环
- 27. python运营商,没有运营商的“不在”
- 28. 奇怪的行为:SQL和运营商,在多个运营商
- 29. F#:在运营商捆绑
- 30. 查询在运营商
http://stackoverflow.com/questions/63998/hidden-features-of-ruby。至少请检查标签Ruby的FAQ部分:http://stackoverflow.com/questions/tagged/ruby?sort=faq&pagesize=50 – sorens 2011-02-27 17:50:46