【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
}
相关推荐
惜.己2 分钟前
使用python的读取xml文件,简单的处理成元组数组
xml·开发语言·python·测试工具
岩中竹2 分钟前
广东省省考备考(第四十九天7.18)——判断推理:位置规律(听课后强化训练)
笔记
许白掰19 分钟前
Linux入门篇学习——借助 U 盘或 TF 卡拷贝程序到开发板上
linux·学习·借助 u 盘拷贝程序到开发板上·借助 tf卡拷贝程序到开发板上
apihz25 分钟前
域名WHOIS信息查询免费API使用指南
android·开发语言·数据库·网络协议·tcp/ip
coding随想39 分钟前
掌控网页的魔法之书:JavaScript DOM的奇幻之旅
开发语言·javascript·ecmascript
Norvyn_71 小时前
LeetCode|Day18|20. 有效的括号|Python刷题笔记
笔记·python·leetcode
爱吃烤鸡翅的酸菜鱼1 小时前
IDEA高效开发:Database Navigator插件安装与核心使用指南
java·开发语言·数据库·编辑器·intellij-idea·database
心情好的小球藻2 小时前
Python应用进阶DAY9--类型注解Type Hinting
开发语言·python
惜.己2 小时前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
Y4090012 小时前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记