【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
}
相关推荐
Scott9999HH1 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社2 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海2 小时前
python 列表、元组、集合和字典
开发语言·python
克里斯蒂亚诺更新2 小时前
ruoyi角色权限的对应关系
笔记
萧瑟余晖3 小时前
JDK 26 新特性详解
java·开发语言
马优晨4 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a1117765 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
人邮异步社区6 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大6 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf