当一个函数无返回值时,函数的类型应定义为啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当一个函数无返回值时,函数的类型应定义为啥相关的知识,希望对你有一定的参考价值。
如果函数没有返回值,那么应定义为void类型。
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:
void的作用在于:
1、对函数返回的限定:如果函数没有返回值,那么应声明为void类型。
2、对函数参数的限定:如果函数无参数,那么应声明其参数为void;如果函数的参数可以是任意类型指针,那么应声明其参数为void *。
扩展资料:
void的使用举例:
在C++语言中声明一个这样的函数:
int function(void)
return 1;
则进行下面的调用是不合法的:
function(2);
因为在C++中,函数参数为void的意思是这个函数不接受任何参数。
在Turbo C 2.0中编译:
#include "stdio.h"
fun()
return 1;
main()
printf("%d",fun(2));
getchar();
编译正确且输出1,这说明,在C语言中,可以给无参数的函数传送任意类型的参数,但是在C++编译器中编译同样的代码则会出错。在C++中,不能向无参数的函数传送任何参数。
所以,无论在C还是C++中,若函数不接受任何参数,一定要指明参数为void。
参考资料来源:百度百科-void
参考技术A 当一个函数无返回值时,函数的类型应定义为void类型。知识扩展:
就是 int m() 那么这个方法执行后有一个结果 就是int类型的。
如果是 void m() 那么这个方法只是执行大括号里的内容 而没有返回值。 参考技术B void 无类型本回答被提问者采纳 参考技术C void型 不返回任何值 参考技术D void类型
03-函数
函数的声明
在Go语言中,函数定义语法如下:
func 函数名(参数1 类型,参数2 类型) (返回值类型){ //函数体(具体实现的功能)
返回值 }
函数中的参数列表和返回值并非是必须的,所以下面代码示例有些是不带的。
代码示例:
1.无参数,无返回值
package main import "fmt" func main() { test() #调用test函数 } func test() { #定义的test函数,无返回值,无参数 fmt.Println("xxxxxx") } #结果 xxxxxx
2.带参数,无返回值
package main import "fmt" func main() { test(2,5) } func test(a int,b int) { #如果参数类型是一样的,可以写成 a,b int fmt.Println(a+b) } #结果 7
3.带参数,有一个返回值
package main func main() { print(test(3,9)) } func test(a ,b int) int { #有返回值时,必须指定返回值的数据类型 return a+b }
4.带参数,有多个返回值
package main import "fmt"
func main() { var a int var b string a,b=test(3,9) #a,b参数接收 fmt.Print(a,b) } func test(a int,b int) (int,string) { #返回多个值,需要用(),接收也需要两个参数接收 return a+b,"aaa" #返回一个int,一个string类型值 }
5.命名返回值
package main import "fmt" func main() { fmt.Print(test1(1,2)) } func test1(a,b int) (j int, k string) { #命名返回值j,k j=a+b k="xxx" return #不需要明确指定返回值,默认返回j,k } #结果 3xxx
不定长参数
package main import "fmt" func main() { test1(1,"aaa") } //不定长参数 func test1(a ...interface{}) { #也可以写成a ...int 接收int类型参数 fmt.Println(a) }
#结果
[1,aaa]
闭包函数:
定义:在函数内部,对外部作用域有引用叫闭包函数
在go语言中,函数是一等公民,可以把函数赋值给一个变量,函数就是一等公民
package main import "fmt" func test11(a int) (int,int) { fmt.Println("xxx") return 1,2 } func main() { var a func(a int)(int,int) #定义一个a函数变量 a=test11 a(1) #传入参数调用 } #结果 xxx
以上是关于当一个函数无返回值时,函数的类型应定义为啥的主要内容,如果未能解决你的问题,请参考以下文章
当需要一个形式参数直接改变对应实参的值时,该形式参数应说明为啥参数?