【Go语言入门学习笔记】Part6.包和两个几乎用不到的小Tip

一、前言

这个文章简单了写了一下包、init函数、匿名函数。

二、学习代码

1.包
Go 复制代码
package packTest

import "fmt"

func init() { //如果主函数引用了这个包,主函数执行的时候会先执行包的init
	fmt.Println("hello world")
}

func Add(num1 int, num2 int) int {
	sum := num1 + num2
	return sum
}

// 一个包里不能有相同的函数名,文件名和文件夹名和包名其实可以不一样,建议包名和文件夹名字一样
// 同一个文件夹下的文件,要是同一个包里的
Go 复制代码
package main

import (
	test "GoLanguage/packTest" //可以在这给包起别名
	"fmt"
)

func main() {

	fmt.Println(test.Add(10, 26))

}
2.init函数

先于main执行

Go 复制代码
func init() { //初始化函数,先于main执行,在这创建的局部变量不是全局,应该是用来给全局变量赋值的
	//initnum := 64			不可用
	fmt.Println("initFunction!")
}
3.匿名函数
Go 复制代码
package main

import (
	test "GoLanguage/packTest" //可以在这给包起别名
	"fmt"
)

func main() {

	//下面这个是匿名函数
	result := func(n1 int, n2 int) int {
		return n1 + n2
	}(num1, num2)
	fmt.Println(result)
	//匿名函数赋予一个变量,后面通过这个变量使用,跟函数还是很像的,全局变量这么干就跟普通函数差不多了
	sub := func(n1 int, n2 int) int {
		return n1 - n2
	}
	lastsub := sub(num1, num2)
	fmt.Println(lastsub)
}
相关推荐
zjeweler6 小时前
“网安+护网”终极300多问题面试笔记-3共3-综合题型(最多)
笔记·网络安全·面试·职场和发展·护网行动
m0_488913017 小时前
万字长文带你梳理Llama开源家族:从Llama-1到Llama-3,看这一篇就够了!
人工智能·学习·机器学习·大模型·产品经理·llama·uml
王码码20357 小时前
Go语言的测试:从单元测试到集成测试
后端·golang·go·接口
王码码20357 小时前
Go语言中的测试:从单元测试到集成测试
后端·golang·go·接口
以神为界7 小时前
Python入门实操:基础语法+爬虫入门+模块使用全指南
开发语言·网络·爬虫·python·安全·web
数厘7 小时前
2.1SQL 学习:先懂数据库概念再学 SQL
数据库·sql·学习
逻辑驱动的ken8 小时前
Java高频面试题:03
java·开发语言·面试·求职招聘·春招
噜噜大王_8 小时前
深入理解 C 语言内存操作函数:memcpy、memmove、memset、memcmp
c语言·开发语言
YoseZang8 小时前
【机器学习】【手工】Streaming Machine Learning 流数据学习 – 应对变化的机器学习方法(一)
人工智能·学习·机器学习
广师大-Wzx8 小时前
一篇文章看懂MySQL数据库(下)
java·开发语言·数据结构·数据库·windows·python·mysql