Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Chris Pine Tut积木和过程_Ruby - Fatal编程技术网

Ruby Chris Pine Tut积木和过程

Ruby Chris Pine Tut积木和过程,ruby,Ruby,我了解以下代码中发生的一切,但输出时的部分除外: 1 def doUntilFalse firstInput, someProc 2 input = firstInput 3 output = firstInput 4 5 while output 6 input = output 7 output = someProc.call input 8 end 9 10 input 11 end 12 13 buildArrayOfSquares = Proc.ne

我了解以下代码中发生的一切,但输出时的
部分除外:

1 def doUntilFalse firstInput, someProc
2  input  = firstInput
3  output = firstInput
4  
5  while output
6    input  = output
7    output = someProc.call input
8  end
9  
10  input
11 end
12 
13 buildArrayOfSquares = Proc.new do |array|
14  lastNumber = array.last
15  if lastNumber <= 0
16    false
17  else
18    array.pop                         #  Take off the last number...
19    array.push lastNumber*lastNumber  #  ...and replace it with its square...
20    array.push lastNumber-1           #  ...followed by the next smaller number.
21  end
22 end
23
24 alwaysFalse = Proc.new do |justIgnoreMe|
25  false
26 end
27
28 puts doUntilFalse([5], buildArrayOfSquares).inspect
1 def duantilfalse firstInput,someProc
2输入=第一输入
3输出=第一输入
4.
5当输出
6输入=输出
7输出=someProc.call输入
8结束
9
10输入
11完
12
13 buildArrayOfSquares=Proc.new do |数组|
14 lastNumber=array.last

15如果lastNumber
输出
将成为过程
someProc
的返回值,该返回值作为参数在第28行传递,如
buildArrayOfSquares
。在特定情况下,这反过来将返回
false
;发生这种情况时,
while
循环将终止


具体来说,
firstInput
[5]
,它成为第一个
输入。我们用
[5]
调用
buildArrayOfSquares
。由于
5
不是
输出将成为过程
someProc
的返回值,该返回值又作为参数传递到第28行,如
buildArrayOfSquares
。在特定情况下,这反过来将返回
false
;发生这种情况时,
while
循环将终止


具体来说,
firstInput
[5]
,它成为第一个
输入。我们用
[5]
调用
buildArrayOfSquares
。因为
5
不是
,这就是我所说的全面答案,谢谢。为了继续树/森林的比喻,你只是拿了一把电锯。这就是我所说的全面答案,谢谢。要继续树/森林的比喻,您只需使用电锯即可。