go基础语法--package/import

本文介绍了Go语言中的package和import基本概念。package作为最基本的分发单位,每个源码文件需声明其所属包,而main包是生成可执行程序的必要条件。import用于导入依赖的package,遵循特定的语法格式,并按特定顺序执行。导入包时,如果包中包含init函数,会先执行init函数。此外,还讨论了import的别名、点操作和下划线操作的用途。

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

package:

package是最基本的分发单位和工程管理中依赖关系的体现;

每个go语言源代码文件开头,都拥有一个package声明,表示源码文件所属代码包;

要生成go语言可执行程序,必须要有main的package包、且必须在该包下有mai()函数;

同一路径下只能存在一个package,一个package可以拆成多个源文件组成;

import:

import可以导入源代码文件所依赖的oackage包

不得导入源代码文件中没有用到的package,否则go语言编译器会报编译错误

import语法格式主要有两种:

第一种:

import "package1"
import "package2"
import "package3"

第二种:

import ("package1","package2","package3")

import原理:

如果一个main导入其他包,包将被顺序导入

如果导入的包中依赖其他包(包B),会首先导入B包,然后初始化B包中常量和变量,最后如果B包中有init,会自动执行init()

所有包导入完成后,才会对main中常量和变量进行初始化,然后执行main中的init函数(如果存在),最后执行main函数

如果一个包被导入多次,则该包只会被导入一次

import别名,".","_"

别名操作的含义是:将导入的包命令为另一个容易记忆的别名;

点(.)操作的含义是:点(.)标识的包导入后,调用该包中函数时,可以省略前缀包名;

下划线(_)操作的含义是:导入该包,但不导入整个包,而是执行该包中的init函数,因此无法通过包名来调用包中的其他函数,使用下划线(_)操作往往是为了注册包里的引擎,让外部可以方便的使用

package main
//别名,重新命名fmt包
import igo "fmt"
func init(){
 igo.Print("main函数执行之前")
}
func main(){
  igo.print("hello go")
}
package main
//用.来别名,可以省略
import (. "fmt")
func main(){
   Print("hello go")
}
package main
import (_ "igo/show")
func main(){
  //此处会报错,下划线不能直接使用包,默认直接执行show中的init函数
  //show.Show()
}


//show中
package show
import "fmt"
func init(){
  fmt.Print("hello show")
}
func show(){
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值