【Golang】够浪的package

main和package

每个包下只能有一个main函数,且包含这个main函数的包名必须命名为 package main 否则无法找到main函数,

包要满足一下条件:

  • 一个目录下的同级文件归属一个包。也就是说,在同一个包下面的所有文件的package名,都是一 样的。
  • 在同一个包下面的文件package名都建议设为是该目录名,但也可以不是。也就是说,包名可以与其目录不同名。
  • 包名为main的包为应用程序的入口包,其他包不能使用。 

 命名包的规则如下:

package 包名

 包内的属性和方法命名规则:

大写字母代表 public ,其他包可以使用此属性或者方法

小写字母代表 privet , 其他包不能使用

main包导入其他本地包:

如图所示

文件结构为:

demo

    |------src

              |------hello

                         |------sayHello

                                      |--------hello.go

                         |--------main.go 

//hello.go的内容
package sayHello

import "fmt"

func Hello()  {
	fmt.Println("hello")
}
//main.go的内容
package main

import "demo/hello/sayHello"

func main() {
    //此处调用hello.go的Hello方法,需要import sayHello包
	sayHello.Hello()
}

注意点:

  • 没有使用go.mod的话就需要把项目设置在GOPATH的src文件下,因为在导入包的时候是在GOPATH的src目录下找的
  • import导入时,会从GO的安装目录(也就是GOROOT环境变量设置的目录)和GOPATH环境变量设置的目录中,
    检索src/package来导入包。如果不存在,则导入失败。(GOROOT,就是GO内置的包所在的位置。GOPATH,就是我们自己定义的包的位置。)
  • 通常我们在开发Go项目时,调试或者编译构建时,需要设置GOPATH指向我们的项目目录,目录中的src目录中的
    包就可以被导入了。

导入包的其他几种方式: 

      1、合并导入

import {
    "package1"
    "package2"
}

      2、点操作

import {
    ."fmt"
}

func main(){
    //fmt.Println("没有.的话就要带上fmt.哦")
    Println("导入包有.的话就可以直接打印啦")
}

     3、起别名

import {
    p "package"
}

     这样就可以用p.method代替package.method了,p是package的别称

     4、 _ 下划线导包

import {
    _"package"
}

     不直接使用包内的函数,而是调用了包内的 init() 函数进行初始化

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章