Go学习笔记-库源码文件

程序实体是什么?在 Go 语言中,它是变量、常量、函数、结构体和接口的统称。

程序实体的名字被统称为标识符。标识符可以是任何 Unicode 编码可以表示的字母字符、数字以及下划线“_”,但是其首字母不能是数字。

代码包声明的基本规则总结:

1.同目录下的源码文件的代码包声明语句要一致。也就是说,它们要同属于一个代码包。这对于所有源码文件都是适用的。否则会报如下错误:

D:\go\src\github.com\xtao\goWeb\common\Logger.go:24:3: expected ')', found 'EOF'

D:\go\src\github.com\xtao\goWeb\server\Routes.go:9:2: found packages handler (RuncmdHandler.go) and handlers (UserHandler.go) in D:\go\src\github.com\xtao\goWeb\server\handler

错误: 进程退出代码 1.

如果目录中有命令源码文件,那么其他种类的源码文件也应该声明属于main包。这也是我们能够成功构建和运行它们的前提。否则会报如下错误:

can't load package: package gostudy/03_package/demo1:

found packages main (demo1.go) and demo1 (demo1_lib.go) in D:\Go_Work\src\gostudy\03_package\demo1

2.源码文件声明的代码包的名称可以与其所在的目录的名称不同。在针对代码包进行构建时,生成的结果文件的主名称与其父目录的名称一致。

导入包时,import是相对src的相对文件路径。

import的几种方式:

点操作

有时候会看到如下的方式导入包:

import( . "fmt" )

这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的:

fmt.Println( "我爱北京天安门" )

可以省略的写成:

Println( "我爱北京天安门" )

别名操作

别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字:

import( f "fmt" )

别名操作调用包函数时前缀变成了重命名的前缀,即:

f.Println( "我爱北京天安门" )

下划线操作

这个操作经常是让很多人费解的一个操作符,请看下面这个 import

import ( “database/sql” _ “github.com/ziutek/mymysql/godrv” )

下滑线 “_” 操作其实只是引入该包。当导入一个包时,它所有的 init() 函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的 init() 函数被执行而已。这个时候就可以使用 “_” 操作引用该包了。即使用 “_” 操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其 init() 函数。

go语言import 关键字导入的 并不是 一个真正的包,而是一个文件夹的路径。如果库源码文件的包和所在的目录名称不一致,导入的时候写的文件夹的路径。

如果导入的两个包的最后一级是相同的,将产生冲突,解决冲突的方式:别名操作。

猜你喜欢

转载自blog.csdn.net/Linzhongyilisha/article/details/83016509