0
A
回答
3
test(1){ puts "hello" }
或
test(1) do
puts "hello"
end
或
blk = proc{ puts "hello" }
test(1, &blk)
你可以看看这个https://pine.fm/LearnToProgram/chap_10.html
由于@Cary Swoveland建议大家可以去略深。
任何Ruby方法都可以隐式地接受一个块。即使你没有在方法签名中定义它,你仍然可以捕获它并进一步传递。
因此,考虑这个想法,我们可以做以下用你的方法操作:
def test(args, &block)
yield
end
相同
def test(args)
yield
end
与同为
def test(args)
block = Proc.new
block.call
end
当你有这个隐含的块捕获你可能想要添加额外的检查:
def test(args)
if block_given?
block = Proc.new
block.call
else
"no block"
end
end
或
def test(args)
if block_given?
yield
else
"no block"
end
end
所以调用这些方法将返回如下:
test("args")
#=> no block
test("args"){ "Hello World" }
#=> "Hello World"
+0
@CarySwoveland DONE – fl00r
相关问题
- 1. 如何在其他函数中使用cmd传递参数?
- 2. 如何使一个类参数传递给其他方法可见的类
- 3. 传递一个块作为参数
- 4. 如何将其他参数传递给jQuery DataTable ajax调用?
- 5. 如何将参数传递给从其他类调用的ViewController
- 6. 其他参数传递路线(expressjs)
- 7. 其他参数传递给控制器
- 8. 将其他参数传递给方法
- 9. 传递函数作为参数传递给其他功能
- 10. 如何将其他参数传递给谓词函数?
- 11. 如何将参数从一个区域传递到其他区域
- 12. 如何将参数从一个页面传递到其他页面?
- 13. 如何将变量从一个ajax函数传递到其他
- 14. 传递一个URL参数,使用Javascript
- 15. 如何传递一个模块作为cython中struct的参数?
- 16. 如何传递一个块作为if语句的参数?
- 17. 如何在其他方法调用中使用传递的参数?
- 18. 是否可以使用httpify传递其他参数?
- 19. 如何传递参数作为模块
- 20. 如何将其他参数传递给CascadingDropDown ServiceMethod?
- 21. 如何将其他参数传递到MatchEvaluator
- 22. 斯卡拉宏:如何传递其他参数
- 23. 如何将其他参数传递给dispatch()?
- 24. 如何将参数传递给其他标签(安卓)
- 25. 如何将其他参数传递给wordpress过滤器?
- 26. 如何将参数从form_for传递到其他控制器?
- 27. 的Apache Tomcat 1.7如何将其他参数传递到JAAS
- 28. 如何模仿ES6其余参数传递一个类
- 29. JavaScript“参数” - 通过其他参数传递函数
- 30. 如何自定义django注册(传递参数,使用其他内置表单)
'测试(1){放 “你好”}' – fl00r