Go语言基础语法(import)-5
章节
- import 导包基础语法简介
- import 导包原理
- import 导包实践
1.import 基础语法简介
1.1 import语句可以导入源代码文件所依赖的package 包
1.1.1 import fmt 包
package main import "fmt" func main() { fmt.Println("测试") }
1.2 不得导入源代码文件中没有用到的package,否则Go语言编译器会报编译错误
1.2.1 引入源代码程序中用不到的time包 (2018版的 goland 可以自动去除没有使用的package)
1.3 import 语法格式分为两种
1.3.1 语法格式1
import "package1" import "package2" import "package3"
1.3.2 语法格式2
import ( "package1" "package2" "package3" )
2 import原理
- 如果一个package main 中导入其他的包,包将被顺序导入;
- 如果导入的包中依赖其他包(包B),会首先导入B包,然后初始化B包中常量和变量,最后如果B包中有init()方法,会自动执行init();
- 所有包导入完成后才会对main中的常量和变量进行初始化,谈后执行main中的init函数(如果存在),最后执行main函数;
- 如果一个包被导入多次则该包只会被导入一次;
即 先初始化依赖包,包中内容的初始化为 常量&变量->init()函数->main(主程文件)中的main()函数
import导入依赖包原理图如下所示:
3.import 导包实践
3.1 创建learn01 、show02两个包
代码如下所示:
learn/lean01.go
package learn01 import "fmt" //初始化函数 func init() { fmt.Println("learn_1 init") } //a函数 什么都不做 func Learn1() { }
show02/show.go
package show02 import "fmt" //初始化函数 func init() { fmt.Println("show_2 init") } //函数名大写 func Show2() { }
main.go
package main //问题1:没有自动 import 相关的包 import ( "fmt" "learn01" "show02" ) /** 注意:无论fmt println 函数放在learn01.Learn1() show02.Show2()之前还是之后都是最后打印的, 这其实是import原理导致的 */ func main() { fmt.Println("main println") learn01.Learn1()//注意此为空方法体 show02.Show2() }
问题列表:
- 最新版goland 2018.02版本对于源代码的放置路径有严格要求,必须放置在项目的 src 目录下?
- import 自动导包功能缺失?
以上两个问题在网上暂时没有找到解决方案,估计是个人 ide 设置出现问题-待解决。
运行结果如下所示:
注意:不同包的init()函数执行先后顺序跟导包顺序相关。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用Numpy和Opencv完成图像的基本数据分析(Part IV)
图像 本文是使用python进行图像基本处理系列的第四部分,在本人之前的文章里介绍了一些非常基本的图像分析操作,见文章《使用Numpy和Opencv完成图像的基本数据分析Part I》、《使用Numpy和Opencv完成图像的基本数据分析 Part II》及《使用Numpy和Opencv完成图像的基本数据分析 Part III》,下面我们将继续介绍一些有关图像处理的好玩内容。 本文介绍的内容基本反映了我本人学习的图像处理课程中的内容,并不会加入任何工程项目中的图像处理内容,本文目的是尝试实现一些基本图像处理技术的基础知识,出于这个原因,本文继续使用 SciKit-Image,numpy数据包执行大多数的操作,此外,还会时不时的使用其他类型的工具库,比如图像处理中常用的OpenCV等: 本系列分为
- 下一篇
学习python最难的就是入门,而这文章刚好适合初学者!
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。 目前Python主要应用领域 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas 系统运维: 运维人员必备语言 爬虫:通过代码来模拟人类访问网页,选择有用信息进行下载 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c+...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程