【Go语言入门学习笔记】Part5.函数

一、前言

这里的还是跟C有区别的,大家熟悉了其他语言后,还得注意一下这里的内容。Go的函数非常灵活。

二、学习代码

Go 复制代码
package main

import "fmt"

// ZhengXing 类似typedef的方法
type ZhengXing int

// 函数名有说法,首字母大写是public的,小写是private的
// func 函数名 形参 返回参数类型
func add(num1 int, num2 int) float32 {
	num3 := float32(num1 + num2)
	return num3
}

func putFuncIn(num int, function func(int, int) float32) int {
	sum := num + int(function(7, 8))
	return sum

}

func main() {
	var num1, num2 int
	num1, num2 = 1, 2
	num1, num2 = num2, num1
	fmt.Println(num1, num2)
	fmt.Println(add(1, 2))
	fmt.Println(Double2(2))
	//返回多个参数,如下
	doubleIt, flag := TwoReturn(100)
	fmt.Println(doubleIt)
	fmt.Println(flag)
	//多个,不清楚多少参数的时候,如下
	fmt.Println(ManyNums(1, 2))
	fmt.Println(ManyNums(1, 2, 3, 4, 5))
	//需要注意变量的作用域问题,函数内的不会影响到main的
	//指针可以让函数内修改main变量,同C,如下
	var num int = 64
	ptrSetting(&num)
	fmt.Println(num)
	//可以给函数做成变量,感觉有点像是换名字,类似于函数指针
	a := add
	a(1, 6)
	fmt.Printf("%T\n", a)
	//a也可以当变量传入其他函数
	fmt.Println(putFuncIn(100, a))
	//自定义数据类型
	var num5 ZhengXing = 111
	fmt.Println(num5)
	//可以在函数头指明要返回谁
	fmt.Println(sumAndSub(3, 4))
}
Go 复制代码
package main

func Double2(x int) int {
	return x * x
}

func TwoReturn(num int) (int, bool) {
	var judge bool
	if num > 10 {
		judge = true
	} else {
		judge = false
	}
	return num * num, judge
}

func ManyNums(args ...int) int {
	var sum int
	for i := 0; i < len(args); i++ {
		sum += args[i]
	}
	return sum
}

func ptrSetting(ptr *int) {
	*ptr++
	return
}

func sumAndSub(a, b int) (sum, sub int) {
	sum = a + b
	sub = a - b
	return
}
相关推荐
不吃香菜学java5 小时前
Redis的java客户端
java·开发语言·spring boot·redis·缓存
xiaotao1315 小时前
02-机器学习基础: 监督学习——线性回归
学习·机器学习·线性回归
贵沫末6 小时前
python——打包自己的库并安装
开发语言·windows·python
文祐6 小时前
C++类之虚函数表及其内存布局(一个子类继承一个父类)
开发语言·c++
墨黎芜6 小时前
ArcGIS从入门到精通——地图符号、注记的初步使用
学习·arcgis·信息可视化
小李云雾6 小时前
FastAPI重要知识点---中间件(Middleware)
学习·程序人生·中间件·fastapi·middleware
.Cnn6 小时前
JavaScript 前端基础笔记(网页交互核心)
前端·javascript·笔记·交互
zuowei28896 小时前
华为网络设备配置文件备份与恢复(上传、下载、导出,导入)
开发语言·华为·php
小夏子_riotous6 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
xiaohe077 小时前
超详细 Python 爬虫指南
开发语言·爬虫·python