首页 > 代码库 > ruby yield 关键字用法实例
ruby yield 关键字用法实例
yield关键字我是这样理解,用它来占一个位置,先标记下这个地方将来要写代码的,等到调用的时候,再来编写具体的代码。有点像函数指针,或者C#里的委托,但其实并不太一样。
写测试接口的时候,每次的assert返回值不一样,但函数体大部分是相同的,只有参数不同。正好最近看到了yield,就熟悉一下用法,可以把assert这部分code写在yield 的位置。
例子主要就是test_nodes这个函数的定义 和 它的调用。
Code:
1 def generate_nodes(n=3) 2 return n 3 end 4 5 def add_nodes(url,node) 6 if node % 2 == 0 7 return "message", 200 8 else 9 return "error", 500 10 end 11 end 12 13 def test_nodes(nodes) 14 nodes.each do |node| 15 2.times do 16 #somecode 17 restr, rcode = add_nodes("url",node) 18 yield restr, rcode, node 19 end 20 end 21 end 22 23 nodes_list = [generate_nodes, generate_nodes(4),generate_nodes(5),generate_nodes(6)] 24 25 test_nodes(nodes_list) do |restr, rcode, node| 26 if restr == "message" && rcode == 200 then #assert return value 27 puts "success" 28 else 29 puts "failed: node is #{node}" 30 end 31 end
ruby yield 关键字用法实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。