我有疑问 我知道一个函数和过程之间的主要区别是 该函数强制返回一个值,其中过程可能会返回值,也可能不会返回值。 但是,当我们使用void类型的函数时,它什么都不返回。 请你们澄清我的疑问。函数和过程之间的区别?
回答
在C及其衍生词中,术语“过程”很少使用。 C有一些函数返回一个值,其中一些没有。我认为这是C遗产的一个制品,在ANSI C中引入void
之前,没有办法而不是返回一个值。默认情况下函数返回int
,如果没有指定明确的返回值,您可以忽略它(仍然可以),并且可能是一些随机数。
在Pascal语言家族中,区别是显式的,函数返回一个值,程序不会。每种情况下都使用不同的关键字进行定义。 Visual Basic还与函数和子例程(?)区分开来。
既然我们在谈论Objective-C,还有一些问题会让你困惑。与类或对象相关的函数被称为“方法”(分别是类方法和实例方法)。另外,如果我们正在迂腐,你不调用Objective-C方法,你可以通过向对象发送消息来调用它们。区别实际上非常重要,因为消息名称(又名“选择器”)不一定总是指向相同的方法,它可以在运行时更改。这与Java和C++等语言根本不同,其中特定类的特定方法名称实际上仅仅是构成方法主体的代码块地址的符号名称。
传统上,返回值的过程被称为函数(参见下文),但是,许多现代语言完全免除了术语过程,更喜欢对所有命名代码块使用术语函数。
Read more at Suite101:程序,子程序或函数?:编程术语101 - 查看程序,子程序和函数在方法和定义上的差异。 http://www.suite101.com/content/procedure--subroutine-or-function--a8208#ixzz1GqkE7HjE
根据编程语言的不同,区别可能不那么清楚。让我们采取保守的语言,帕斯卡尔:
procedure
确实没有返回值。它用于没有返回值或具有多个返回值的操作。在后一种情况下,多个参数(返回参数或输出参数)通过引用传递(使用关键字var
),并且它们的值直接从过程中修改。 (请注意,根据具体情况,后一种情况可能不被视为良好做法)。function
有一个单一的返回值,通常我们不希望它改变其任何参数的值(然后可以通过值或通过关键字const
传递哪些参数)。将多个返回值绑定到记录中可能会返回多个返回值。
Ç或爪哇不区分语法,所以返回类型void
的函数可以被认为是一个过程。 斯卡拉区分他们之间的方法头和方法体之间的等号。
一般,无论实际的语言如何调用它的结构,我们将理想预计
- 一个
function
接受参数,不修改任何状态(如变异参数,全局变量,或将用户的信息打印到控制台),并返回计算结果。 - A
procedure
需要参数,执行可能产生副作用的操作(写入数据库,打印到控制台,可能会突变变量),但希望不会改变任何参数。
但实际上,根据情况,可以观察到这些期望的混合。坚持这些准则有助于我思考。
- 1. read.table和read.delim函数之间的区别
- 2. 语句和函数之间的区别
- 3. MPI_Allgather和MPI_Alltoall函数之间的区别?
- 4. setcookie()和session_set_cookie_params()函数之间的区别
- 5. getch()和scanf()函数之间的区别
- 6. 函数和语句之间的区别
- 7. jinja2函数和过滤器之间的区别?
- 8. 数据/类型构造函数和函数之间的区别?
- 9. 函数和函数指针之间的区别作为参数
- 10. 存储过程和扩展存储过程之间的区别
- 11. SQL过程和CLR过程之间的区别?
- 12. 事件处理程序和回调函数之间的区别
- 13. 函数对象和函数指针之间的区别?
- 14. 新AsyncCallback(AddressOf函数)和AddressOf函数之间的区别
- 15. jquery函数和常规javascript函数之间的区别?
- 16. 析构函数和函数之间的区别是什么?
- 17. “函数返回”和“函数无返回”之间的区别
- 18. 内联函数和静态内联函数之间的区别
- 19. Dalvik Bridge函数和Dalvik Native函数调用之间的区别?
- 20. char函数(void)和void函数(void)之间的C区别
- 21. 请解释函数($变量)和函数()之间的区别
- 22. 构造函数和new/malloc之间的区别,析构函数与delete/free之间的区别
- 23. TypeScript:函数类型之间的区别
- 24. 这两个函数之间的区别
- 25. Javascript - 函数声明之间的区别
- 26. javascript构造函数之间的区别
- 27. 函数对象之间的区别R
- 28. JavaScript函数声明之间的区别?
- 29. Python:过滤器(函数,序列)和映射(函数,序列)之间的区别
- 30. 过程和过程映像之间有什么区别?
除此之外,关于对象,我们经常使用术语“方法”。 – JeremyP 2011-03-17 10:06:17