我期望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
问题:
nil
从赋值语句中返回?b
被分配10
?更新:
正如@DaveNewton在(1)中提到的那样,我认为自己正在这样做:
a = (counter +=1 while counter < 10)
但我实际上在做:
(a = counter +=1) while counter < 10
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句