【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)
}
相关推荐
ZC跨境爬虫3 分钟前
跟着 MDN 学CSS day_48:深入CSS多列布局——像报纸一样组织内容
前端·css·学习
我不是懒洋洋8 分钟前
【C++】内存管理与模板(C++内存管理方式、new和delete的实现原理、malloc/free和new/delete的区别、函数模板、类模板)
c语言·开发语言·c++·青少年编程·visual studio
雪的季节9 分钟前
Qt多窗口架构设计需求简介
开发语言·qt
凌波粒13 分钟前
深度学习入门(鱼书)第4章笔记——神经网络的学习
笔记·深度学习·神经网络
z2005093014 分钟前
【linux学习】深入理解 Linux 下的静态库与动态库
开发语言·c++·算法
韦胖漫谈IT15 分钟前
面向对象 vs 函数式背后的思维差异
开发语言
Xin_ye1008619 分钟前
C# 零基础到精通教程 - WPF 深度专题:3D 图形与视觉增强
开发语言·c#·wpf
zhangfeng11331 小时前
台大李宏毅老师讲解memba和类似linear atttenion 模型,笔记
开发语言·人工智能·笔记
Chris _data2 小时前
并发单词频率统计器 - 从零到完整实现(C# 实战)
开发语言·c#
idolao2 小时前
Oligo 7.60 安装教程:引物设计+Java 环境配置
java·开发语言