Ruby:为什么while和直到不返回它们从函数执行的最后一行?
发布时间:2020-12-17 03:17:43 所属栏目:百科 来源:网络整理
导读:我希望while循环返回它执行的最后一个语句,但是函数似乎没有返回. (1)这似乎有效.. [10] pry(main) counter = 0= 0[11] pry(main) a = counter+=1 while counter 10= nil[12] pry(main) a= 10 (2)这不符合我的预期.我希望将10返回并存储到b中. [19] pry(main
我希望while循环返回它执行的最后一个语句,但是函数似乎没有返回.
(1)这似乎有效.. [10] pry(main)> counter = 0 => 0 [11] pry(main)> a = counter+=1 while counter < 10 => nil [12] pry(main)> a => 10 (2)这不符合我的预期.我希望将10返回并存储到b中. [19] pry(main)> def increment(terminal_value) [19] pry(main)* counter = 0 [19] pry(main)* while counter < terminal_value [19] pry(main)* counter+=1 [19] pry(main)* end [19] pry(main)* end => :increment [20] pry(main)> b = increment(10) => nil [21] pry(main)> b => nil 问题: >为什么在(1)中从赋值语句返回nil? 更新: 正如@DaveNewton所提到的,在(1)中,我以为我在做: a = (counter +=1 while counter < 10) 但我其实在做: (a = counter +=1) while counter < 10 解决方法
在两个示例中,while循环结果为nil.
从
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |