61396-Go语言程序设计项目化教程(微课版)3.1 函数.pptx

上传人:暗伤 文档编号:96687002 上传时间:2024-03-01 格式:PPTX 页数:29 大小:569.11KB
返回 下载 相关 举报
61396-Go语言程序设计项目化教程(微课版)3.1 函数.pptx_第1页
第1页 / 共29页
61396-Go语言程序设计项目化教程(微课版)3.1 函数.pptx_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《61396-Go语言程序设计项目化教程(微课版)3.1 函数.pptx》由会员分享,可在线阅读,更多相关《61396-Go语言程序设计项目化教程(微课版)3.1 函数.pptx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 函数函数函数定义函数变量函数创建指针创建01.03.02.04.目录01函数定义函数定义函数参数函数传递packagemain/指定其所在的包importfmt/导入fmt包funcmain()/main()函数是程序的入口fmt.Println(不忘初心,牢记使命!)/Println()函数打印内容Go语言程序中都有一个main()函数可以通过其它函数来实现不同功能,逻辑上每个函数执行的是指定的任务Go语言标准库提供了多种可用的内置函数1函数定义函数定义Go语言是编译型语言,函数编写时顺序是无关紧要的函数构成了代码执行的逻辑结构函数是基本的代码块将一个需要很多行代码的复杂问题分解为一系列简

2、单的任务来解决同一个任务(函数)可以被多次调用,有助于代码重用关键字func函数名参数列表返回值函数体返回语句函数的基本组成函数的特点1函数定义函数定义packagemainimportfmtfuncmain()fmt.Println(sum(1,2,3,4,5)funcsum(numbers.int)ints:=0fori:=rangenumberss+=numbersireturns当函数执行到代码块最后一行之前或者return语句的时候会退出其中return语句可以带有零个或多个参数,这些参数将作为返回值供调用者使用运行结果为:151函数定义函数定义1函数定义函数定义(a).支持参数数量

3、不固定(b).支持匿名函数及闭包(c).支持函数本身作为值传递(d).支持函数的延迟执行(e).支持把函数作为接口调用(f).无须前置声明Go语言函数的支持特性(g).不支持命名嵌套定义(h).不支持同名函数重载(i).不支持默认参数(j).支持多返回值(k).支持命名返回值匿名函数或者lambda函数方法Go语言里面拥有3种类型的函数1函数定义函数定义普通的带有名字的函数02函数创建函数声明函数参数函数传递2函数创建函数创建func函数名(参数列表)(返回参数列表)函数体函数的语法packagemainimport(fmtmath)funcmain()fmt.Println(hypot(3,

4、4)funchypot(x,yfloat64)float64returnmath.Sqrt(x*x+y*y)在左边的hypot函数中:x和y是形参名,3和4是调用时的传入的实数,函数返回了一个float64类型的值,返回值也可以像形式参数一样被命名,在这种情况下,每个返回值被声明成一个局部变量,并根据该返回值的类型,将其初始化为0。函数案例运行结果为:5(a).func:函数是以func为关键字;(b).函数名:函数名由字母、数字和下划线构成,但是函数名不能以数字开头;在同一个包内函数名不可重复;(c).参数列表:参数列表中的每个参数都由参数名称和参数类型两部分组成,参数变量为函数的局部变量。

5、如果函数的参数数量不固定,Go语言函数还支持可变参数;(d).返回参数列表:返回参数列表中的每个参数由返回的参数名称和参数类型组成,也可简写为返回值类型列表;(e).函数体:函数体指函数的主体代码逻辑,若函数有返回参数列表,则函数体中必须有return语句返回值列表。函数的语法详解2函数创建函数创建2函数创建函数创建函数可以有一个或者多个参数。如果函数使用参数,则该参数被称为函数的形参。形参就像定义在函数体内的局部变量。Go函数还支持可变参数(简称“变参”)。接受变参的函数有着不定数量的参数。参数形参在定义函数时,用于接收外部传入的数据被称为形式参数实参在调用函数时,传给形参的实际的数据被称为

6、实际参数2函数创建函数创建Go语言函数中的传递方式值传递在调用函数时将实际参数复制一份传递到函数中函数运行中如果对参数进行修改,将不会影响到实际参数引用传递在调用函数时将实际参数的地址传递到函数中函数运行中对参数所进行的修改,将影响到实际参数packagemainimportfmtfuncnumber1(numint)num=2funcnumber2(num*int)*num=2funcmain()a:=1number1(a)fmt.Println(a)/值传递number2(&a)fmt.Println(a)/引用传递运行结果为:12默认情况下,Go语言所使用的是值传递,即在调用过程中不会影

7、响到实际参数。函数参数调用需遵守如下形式:(a).函数名称必须匹配;(b).实参与形参必须一一对应:顺序、个数、类型。2函数创建函数创建03函数变量函数变量声明Go语言中,函数也是一种类型,我们可以将其保存在变量中可以通过type定义这种变量的类型拥有相同参数和相同返回值的函数属于同一种类型其优点是:可以将函数作为值进行传递3函数变量函数变量var变量名称func()函数变量的语法函数变量3函数变量函数变量packagemainimportfmtfuncmain()a:=10b:=11varf1func(xint,yint)(sumint,subint)f1=addSubsum,sub:=f1

8、(a,b)fmt.Printf(%d+%d=%dn,a,b,sum)fmt.Printf(%d-%d=%dn,a,b,sub)funcaddSub(xint,yint)(sumint,subint)sum=x+ysub=x-yreturnsum,sub运行结果为:10+11=2110-11=-1varf1func(xint,yint(sumint,subint)中的f1为函数变量,声明后的f1可以被当成函数类型的变量来使用。04指针创建声明指针取变量地址获取指针所指向的内容指针(Pointer),全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(

9、数据)。实实在在的变量,有自己的内存存储空间,它可以指向任何有效的变量没有自己的实际存储空间引用,是C+中提出来的一种新的使用变量的方式,即给实际变量起个别名,通过这个别名来引用实际的变量。4指针创建指针创建4指针创建指针创建var_name为指针变量名var_type为指针类型*用于指定变量是作为一个指针这里的类型可以是我们前面学到的变量与常量的类型,例如int,float等。varvar_name*var_type指针声明语法含义packagemainimportfmtfuncmain()varaint=1varb*intb=&afmt.Printf(a变量地址:%xn,&a)fmt.Pr

10、intf(b变量指针地址:%xn,b)fmt.Printf(*b变量的值:%dn,*b)运行结果为:a变量地址:c00000a098b变量指针地址:c00000a098*b变量的值:1Go语言中的指针是一种地址值;指针变量就是存放地址值的变量。4指针创建指针创建packagemainimport(fmt)funcmain()varp*intfmt.Println(p)varp*int为指针类型的声明,由于变量P没有赋值,所以打印为空。运行结果为:4指针创建指针创建指针特点一个指针变量可以指向任何一个值的内存地址它所指向的值的内存地址在32和64位机器上分别占用4或8个字节占用字节的大小与所指向

11、的值的大小无关当一个指针被定义后没有分配到任何变量时,它的默认值为nil。指针变量通常缩写为ptr(指代point)4指针创建指针创建每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置,Go语言中使用“&”符号放在变量前面对变量进行“取地址”操作。ptr:=&v/v的类型为Tv代表被取地址的变量,变量ptr用于接收地址值,ptr的类型就为*T,称做T的指针类型,*代表指针。4指针创建指针创建packagemainimport(fmt)funcmain()num:=1varp*intp=&numfmt.Println(num变量的地址为:,p)fmt.Println(指针变量p的地址

12、为:,&p)运行结果为:num变量的地址为:0 xc042066080指针变量p的地址为:0 xc042086018指针变量本身也有自己的地址。在对普通变量使用&操作符取地址获得这个变量的指针后,可以对指针使用“*”操作符,也就是指针取值。varhouse=MalibuPoint10880,90265ptr:=&housefmt.Printf(ptrtype:%Tn,ptr)fmt.Printf(address:%pn,ptr)value:=*ptrfmt.Printf(valuetype:%Tn,value)fmt.Printf(value:%sn,value)ptrtype:*string

13、address:0 xc0420401b0valuetype:stringvalue:MalibuPoint10880,90265运行结果取地址操作符&和取值操作符*是一对互补操作符,&取出地址,*根据地址取出地址指向的值。4指针创建指针创建4指针创建指针创建变量、指针地址、指针变量、取地址、取值的相互关系和特性对变量进行取地址操作使用&操作符,可以获得这个变量的地址值。指针变量的值是地址值对指针变量进行取值操作使用*操作符,可以获得指针变量指向的原变量的值。4指针创建指针创建packagemainimport(fmt)funcmain()num:=1varp*intp=&numfmt.Pri

14、ntln(指针变量p的所指向的内容为:,*p)运行结果为:指针变量p的所指向的内容为:1在取出指针的地址值后,通过在前面加*可以打印指针所指向的内容。4指针创建指针创建packagemainimportfmtfuncmain()/定义局部变量varaint=100varbint=200swap(&a,&b);fmt.Printf(交换后a的值:%dn,a)fmt.Printf(交换后b的值:%dn,b)/将指针作为函数参数funcswap(x*int,y*int)*x,*y=*y,*x运行结果为:交换后a的值:200交换后b的值:100Go语言支持向函数传递指针,只需要将函数定义的参数设置为指针类型即可。谢谢观看谢谢观看

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁