网站搭建教程吾爱破解,filezilla wordpress,网站建设需要的设备,qq刷赞网站推广软件【GO语言卵细胞级别教程】04.GO函数介绍 目录#xff1a; 【GO语言卵细胞级别教程】04.GO函数介绍0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 0.创建项目 创建目录 执行命令加载模块 cd 02.gostudy目录下
1.进入目录下
cd 02.gostudy
2.初始化模块变量
go …【GO语言卵细胞级别教程】04.GO函数介绍 目录 【GO语言卵细胞级别教程】04.GO函数介绍0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 0.创建项目 创建目录 执行命令加载模块 cd 02.gostudy目录下
1.进入目录下
cd 02.gostudy
2.初始化模块变量
go mod init com.gdzs
3.go mod tidy4.main.gopackage main
import (fmtcom.gdzs/goproject/src/com/nsfocus/mystudy
)
func main(){fmt.Println(main)mystudy.DemoFunc()
}5. 01.函数.go文件内容package mystudy
// 函数模块
import fmt
func add(num1 int , num2 int) (int){return num1 num2
}
func DemoFunc(){fmt.Println(求和函数)sum : add(10, 21)fmt.Println(求和结果, sum)
}6.执行go run main.go即可 main.go必须要指定相对路径比如本项目的
D:\07.go\02.gostudy go run .\goproject\src\com\nsfocus\main\main.go
main
求和函数
求和结果 31注意 go mod tidy 的作用如下
移除不再使用的依赖它会检查项目的源代码和导入语句并删除 go.mod 文件中未使用的依赖模块。这样可以清理项目中不再需要的依赖减少项目的大小。添加缺失的依赖go mod tidy 会检查项目的源代码并根据导入语句自动添加缺失的依赖模块到 go.mod 文件中。这样可以确保项目的依赖完整避免编译错误或运行时错误。更新依赖模块它会根据 go.mod 文件中指定的版本要求检查并更新依赖模块到可用的最新版本。这样可以确保项目使用的依赖模块是最新的包含了最新的功能和修复
1.函数的引入
#Go函数
简介 函数的定义:就是用于封装重复的内容做成一个方法可以输入给你一些输出 作用提高代码复用性和可读性
func 函数名 (形参列表)(返回值类型列表){执行语句return 返回值列表
}举例 #Go函数定义
func add(num1 int, num2 int)(int){var sum int 0sum num1 num2return sum
}2.注意事项
#Go函数注意事项 函数与函数并列的关系所以我们定义的函数不能写到main函数中如下的写法是错误的 函数名的规范 和标识符的规范一样驼峰命名简单明了首字母不能是数字首字母大写该函数可以被本包文件以及其他包文件使用类似java public首字母小写只能被本包文件使用其他包文件不能使用类似java private
3.详细介绍
3.1 形参介绍
形参可以是0个、1个、多个 形参作用接收外来的数据返回类型有一个
package mystudy
// 函数模块
import fmt// 返回值类型有一个写返回类型
func add(num1 int , num2 int) (int){return num1 num2
}
// 返回值可以不写返回类型如果只有一个返回类型的话可以不写括号(()
func add2(num1 int, num2 int) int {var sum int 0sum num1 num2return sum
}
func DemoFunc(){// fmt.Println(求和函数)// sum : add(10, 21)// fmt.Println(求和结果, sum)sum2 : add2(19,22)fmt.Println(求和结果, sum2)
}返回类型有多个
package mystudy
// 函数模块
import fmtfunc add3(num1 int, num2 int)(int, int){// 值交换return num2, num1
}func DemoFunc(){// fmt.Println(求和函数)// sum : add(10, 21)// fmt.Println(求和结果, sum)sum2 : add2(19,22)fmt.Println(求和结果, sum2)var num1 int 10var num2 int 20fmt.Printf(替换前sum1:%d, sum2:%d\n, num1, num2)num2, num1 add3(num2, num1)fmt.Printf(替换后sum1:%d, sum2:%d, num1, num2)
}想要改变形参的值需要使用指针。这里传入的是指针所以可以直接修改得到值
// 传入指针才可以修改对应变量值
func address(num1 *int){fmt.Println(num1)*num1 100
}返回类型不用按照顺序返回可以使用 (xxx1 int , xxx2 int)
// 不用指定返回值的类型
func addsub(num1 int, num2 int)(sum int, sub int){sum num1 num2sub num1 - num2// 这里不需要指定返回变量自动生成return sum ,sub 所以直接写个return即可return
}
可以传入多个参数:xxx…int
// 传入多个参数
func mostParams(nums...int){for i :0 ; i len(nums); i {fmt.Println(num,nums[i])}
}
mostParams(12,2,3,233,23,32,32)Golang中函数不支持重载函数名相同形参列表不同函数也是一种数据类型可以赋值给一个变量则该变量就是一个函数类型的变量了通过该变量可以对函数调用。
func mostParams(nums...int){for i :0 ; i len(nums); i {fmt.Println(num,nums[i])}
}
separator : strings.Repeat(-, 10)
varMostParams : mostParams
fmt.Println(separator)
varMostParams(32,23,88)函数当作一个参数进行传递
func mostParams(nums...int){for i :0 ; i len(nums); i {fmt.Println(num,nums[i])}
}
// 函数当作一个参数传递
func funcParams(funcTest func(...int)){funcTest(12,12,12)
}
varMostParams : mostParams
func DemoFunc(){funcParams(varMostParams)
}自定义数据类型 这里可以理解为别名也可以但是类型不是func(int)而是myFunc
type myint int
var num myint 10
注意这里的myint和int不是同一个类型这num的类型是 myint类型
----------------------------------------------------
一般用来
type myFunc func(int)func test(testFunc myFunc){}