石家庄网站建设外包公司,淘宝做网站 评价话语,服务器代理,芜湖设计公司排名核心化编程
为什么需要函数#xff1f;
代码冗余问题不利于代码维护函数可以解决这个问题
函数 函数#xff1a;为完成某一功能的程序指令#xff08;语句#xff09;的集合#xff0c;称为函数 在 Go 中#xff0c;函数分为#xff1a;自定义函数#xff08;自己写…核心化编程
为什么需要函数
代码冗余问题不利于代码维护函数可以解决这个问题
函数 函数为完成某一功能的程序指令语句的集合称为函数 在 Go 中函数分为自定义函数自己写的、系统函数系统提供的 函数的定义
基本语法
func 函数名(形参列表) (返回值列表) {执行语句...return 返回值列表
} 形参列表表示函数的输入函数中的语句表示为了实现某一功能代码块函数可以有返回值也可以没有 包 包的引入 在实际开发中我们往往需要在不同的文件中去调用其他文件的定义的函数比如在 main.go 中去使用 utils.go 文件中的函数如何实现——》包现在有两个程序员共同开发一个 Go 项目程序员A 希望定义函数 cal程序员B 也想定义函数 cal两个程序员吵起来了怎么办——》包 包的原理图 包的本质实际上就是创建不同的文件夹来存放程序文件 包的介绍 包的概念 说明go 的每一个文件都是属于一个包的也就是说 go 是以包的形式来管理文件和项目目录结构的 包的三大作用 区分相同名字的函数变量等标识符当程序文件很多时可以很好的管理项目控制函数、变量等访问范围即作用域 包的相关说明 打包基本语法 package util引入包的基本语法 import 包的路径 包的快速入门 说明包的快速入门——》Go 相互调用函数 使用包里面的函数 包名.函数名( ) 包的注意事项和细节说明
在给一个文件打包时该包对应一个文件夹比如这里的 utils 文件夹对应的包名就是 utils文件的包名 通常 和文件所在的文件夹名一致一般为小写字母当引入一个文件要使用其它包函数或变量时需先引入对应的包 引入方式1import 包名引入方式2 import 包名和引入fmt 一样package 指令在文件第一行然后是 import 指令在 import 包时路径从 $GOPATH 的 src 下开始不用带 src 编译器会自动从 src 下开始引入为了让其他包的文件可以访问到本包的函数则该函数名的首字母需要大写类似其它语言的 public这样才可以跨包访问。比如 untils.go 在访问其他包函数时其语法是 包名。函数名如果包名较长Go 语言支持给包取别名。注意细节取别名后原来的包名就不能使用了。说明如果给包取了别名则需要使用别名来访问该包的函数和变量 在同一个包下不能有相同的函数名也不能有相同的全局变量否则报重复定义错误如果你要编译成一个可执行程序文件就需要将这个包声明为 main即 package main。这个就是一个语法规范包名可以自定义 编译时需要编译 main 包所在的文件夹可以指定生产的可执行文件名 .exe放在指定路径 go build -o bin\my.exe 后面时mian.go所在的路径-o 代表输出当编译完会生成一个 pkg 文件里面是库包 .a里面是二进制 函数的调用机制 在调用一个函数时会给该函数分配一个新的空间编译器会通过自身的处理让这个新的空间和其他的栈的空间区分开来在每个函数对应的栈中数据空间是独立的不会混淆当一个函数调用完毕执行完毕后程序会销毁这个函数对应的栈空间。 return 语句 基本语法 Go 函数支持返回多个值这一点是其他编程语言没有的 func 函数名(形参列表) (返回值列表) {语句...return 返回值列表
} 如果返回多个值时在接收时希望忽略某个返回值则使用 _ 符号表示占位忽略如果返回值只有一个返回值类型列表可以不写 ()