Go核心开发学习笔记(十二) —— 函数基本概念和包的概念、工程目录

本文深入探讨Golang中的函数概念,包括基本语法、自定义与系统函数的区别,以及如何通过函数解决代码冗余和维护难题。同时,解析包的作用,如命名空间区分、项目管理和函数访问控制,详细介绍包的引入和使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数

  1. 为完成某一功能的程序指令的集合,称为函数。
  2. 解决问题:代码冗余;不利于代码维护。
  3. 可以使main()代码段结构简洁明了。
  4. 函数分为自定义函数和系统函数。

基本语法

func <函数名> (<形参列表>) (返回值列表) {
<执行语句>
return 返回值列表 //return两个功能,终止函数和返回值
}

  1. 参数列表,表示函数的输入形参
  2. 函数可以有返回值,也可以没有。
    简单函数示例:
    package main
    
    import "fmt"
    
    func calc (n1 float64 , n2 float64) float64 {
    	res := n1 * n2
    	return res
    }
    
    func main() {
    	a,b := 10.0,40.0
    	res := calc(a,b)
    	fmt.Println(res)
    }
    

包的作用

  1. 区分相同名字的函数,变量,标识符等,每个包都是一个独立的命名空间。
  2. 当程序文件很多时,可以很好地项目管理。
  3. 控制函数,变量的访问范围,即作用域。
  4. 引入包的用法: import <包的路径>
  5. ★★★使用其他包的函数的方法: <包名>.<函数名>,切记被引入的包的函数名首字母必须大写才可以引用。
  6. 不仅可以是用其他包中的函数,也可以引用其他包中的变量,使用方法:<包名>.<变量名>
  7. 如果引入的包名过长,可以使用别名方式为长包名命名一个单词,例如: import ( util “aa/bb/cc/dd/ee”),这样函数后续都是用 util.<函数>,util.<变量>。
  8. 同一个包中不可以有重复的函数名称。
  9. 如果要编译一个可执行文件,必须将这个包声明为main,只有package main 才是程序唯一的入口,其他的库文件可以使用不同的package名称。

关于GOPATH和Goland中的坑

  1. 在Goland中首先设置好Gopath,File->Setting->Go->GOPATH->Porject Gopath 设置为当前Gopath,因为未来会有很多项目,所以设置当前项目的Gopath。
  2. 在Gopath目录下配置好bin pkg src三个文件夹。
  3. 后续所有自己写的包必须放在src目录下,在本项目中的import就可以直接写包名,被其他函数调用了,import路径是从src下方开始的。
  4. 自己写的函数上方的package包名最好要和src下所处的文件夹名字相一致,方便个人习惯,实际上可以不同, src/shit下.go文件的package名为xiaoli,那么其他.go引入函数需要使用xiaoli,而不是shit。
  5. 包中的.go文件的函数名一定要首字母大写才可以被其他.go文件引用,不然会报红色变量标记告知没有这个函数。

关于Golang工程目录

  1. 项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性
  2. 一般的,一个Go项目在GOPATH下,会有如下三个目录: $GOPATH1 = {bin pkg src}
  3. src里面放置着所有源代码,而其中应该只有一个main包,内部放置着package main的.go文件,只有main包才可以使用go install main生成可执行程序会放置在bin文件夹中。
  4. src除了main包下的其他包,其中的.go文件如果 go install xxx 后会生成库文件,xxx.a是二进制文件,不具备可读性,会放置在pkg文件夹中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值