【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
}
相关推荐
Boilermaker19924 分钟前
【Java EE】Mybatis-Plus
java·开发语言·java-ee
aramae10 分钟前
C++ -- STL -- vector
开发语言·c++·笔记·后端·visual studio
Tony小周10 分钟前
实现一个点击输入框可以弹出的数字软键盘控件 qt 5.12
开发语言·数据库·qt
lixzest30 分钟前
C++ Lambda 表达式详解
服务器·开发语言·c++·算法
fen_fen38 分钟前
学习笔记(32):matplotlib绘制简单图表-数据分布图
笔记·学习·matplotlib
沉默媛1 小时前
如何安装python以及jupyter notebook
开发语言·python·jupyter
_Chipen1 小时前
C++基础问题
开发语言·c++
止观止2 小时前
JavaScript对象创建9大核心技术解析
开发语言·javascript·ecmascript
screenCui3 小时前
macOS运行python程序遇libiomp5.dylib库冲突错误解决方案
开发语言·python·macos
linux kernel4 小时前
第七讲:C++中的string类
开发语言·c++