首页 > 其他 > 详细

组织Golang代码(package)

时间:2020-04-14 10:28:52      阅读:71      评论:0      收藏:0      [点我收藏+]

前言

无论什么Python还是Golang当你的代码量达到一定程度时,就需要使用package来组织我们的代码文件。

 

package概念

在项目开发过程中组织代码的一中方式。包是多个Go文件的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmtosio等。

在目前我使用的go1.11.5中每1个.go文件都需要存放在Gopath路径下的1个文件中(包)。

package main

 .go文件最开始声明这是1个main包,也就是程序的入口。

 

package使用

定义package

一般来说除了1个程序入口(main包)之外,在Go项目中其他都是我们程序开发人员自由定义的(工具包),以便调用。

如果是工具包必定被其他包调用,如果想要被其他包调用工具包中的 标识符(变量名、函数名、struct名、interface名)一定要大写

技术分享图片

 1个文件夹就是1个package,一般情况下package中的.go文件一般会和package同名。  

 programmer.go

package devlepment

import "fmt"

//Programer 大写才能被外部其他包调用
func Programer(name string) {
	fmt.Printf(`
		I‘m %s  a programmer work in devlepment department
		I interest in programing.in my free time I like seing some Science fiction films ranther than porn.
		`, name)
}

 

init函数

包中的init函数在调用该包时自动执行

package resources

import "fmt"

//init:导入包时自动执行
func init(){
	fmt.Println("导入resources包时自动执行")
	receptionist("May")
}

func receptionist(nam string){
	fmt.Println(`Good morning.may I help you? `)
}

 

init()函数执行顺序

Go语言包会从main包开始检查其导入的所有包,每个包中又可能导入了其他的包。Go编译器由此构建出一个树状的包引用关系,再根据引用顺序决定编译顺序,依次编译这些包的代码。

在运行时,被最后导入的包会最先初始化并调用其init()函数, 如下图示:

技术分享图片

 

 

 

导入package

调用Go里面的包需要从Go project的src目录下的文件夹开始。

 

package main

import (
	//匿名调用包:只调用执行包中init函数中的代码,不使用(pymysql)
	_ "hello/package_practice/resources"
	//别名:包所在的路径
	devlepment "hello/package_practice/devlepment"
	sales "hello/package_practice/sales"
	finnace "hello/package_practice/finance"

)

func main(){
	devlepment.Programer("Sam")
	finnace.Contant("Sally")
	sales.Salesman("Todd")
	
	
	
}

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

see also

组织Golang代码(package)

原文:https://www.cnblogs.com/sss4/p/12695602.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!