我正在尝试学习File 1 = Example.C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void) {
printf ("C Programming, This is my First C Program");
return EXIT_SUCCESS;
}
File 2: TestProgram.C
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void) {
printf ("This is a TEST C Program, Check it out. ");
return 0;
}
方法,这对我来说非常困惑。最后,当我以为我已经理解了这个方法时,突然出现了这段代码
yield
当我执行包含此代码的文件时,它不会打印任何内容。据了解,没有人调用这种方法所以没有输出。
但如果我添加
,则在同一个文件中def test
puts "You are in the method"
yield
puts "You are again back to the method"
yield
end
在测试函数下方突然开始打印puts语句。
我不明白是谁在调用这个方法。如果test {puts "You are in the block"}
阻止导致呼叫,它不应该首先执行其内容吗?
但是输出是
test {..}
答案 0 :(得分:5)
当你写test { puts "You are in the block"}
时, 你正在调用该函数。你正在调用test
,并传递一个参数,一个块。
每个方法都可以隐含地使用一个块参数。当你在函数内部调用yield
时,你说的是#34;调用块参数。&#34;因此,当您两次调用yield
时,您在其他puts
语句之间调用了两次block参数。
答案 1 :(得分:2)
当我执行包含此代码的文件时,它不会打印任何内容。 据了解,没有人调用这种方法所以没有输出。
定义方法与调用它无关。您可以定义数百个方法,每个方法都输出一些内容,但运行该文件将导致无输出,因为实际上调用了任何方法。
但如果添加
test {puts "You are in the block"}
,则在同一文件中 在测试函数下方突然开始打印puts语句。
正确,您 实际上正在调用 将块传递给它的方法。
调用函数的原因是什么?
键入一个方法的名称,将参数传递给它(如果它接受任何(块可以传递给任何方法,尽管它的arity))调用它。