go得快(3)

  • 包的一些使用
package main

import (
    . "fmt"
    "spikeSystem/jack" //需要把当前的目前名字上, jack是个目录名
    //jack 目录下有个utilset.go的文件里面内容是
    /*
    package mypackage
    import "fmt"
    func MyTestFunc(){
        fmt.Print("my func print")
    }
    */

    //"./tom"  //有一个tom的目录

)

func main()  {
    //step1. 项目管理
    //1.1 包导入,可以使用别名
    /*
    import (
        "crypto/rand"
        mrand "math/rand" // 将名称替换为mrand避免冲突
    )
    */

    //1.2 使用点操作
    Println("使用点操作") //此时的需要这样导入包 import . "fmt"

    //1.3 包的初始化
    //init 优先于 main 方法运行

    //1.4 包的匿名导入
    /*
    当我们导入一个包时,如果这个包没有被使用到,在编译时,是会报错的。
    但是有些情况下,我们导入一个包,只想执行包里的 init 函数,来运行一些初始化任务,此时怎么办呢?
    可以使用匿名导入,用法如下,其中下划线为空白标识符,并不能被访问

    比如:
    import _ "image/png"
    */

    //1.5 导入的路径吗
    /*
    导入时,是按照目录导入。导入目录后,可以使用这个目录下的所有包。
    出于习惯,包名和目录名通常会设置成一样,所以会让你有一种你导入的是包的错觉。
    */


    //1.6 相对导入和绝对导入
    //1.6.1 绝对导入
    mypackage.MyTestFunc() //import的自定义包, "spikeSystem/jack"

    //1.6.2 相对导入 - 开启 GO111MODULE 后,无法使用相对导入
    //tompackage.Tomfunc() //需要把 export GO111MODULE=off  关了能使用相对, import "./tom"  直接这样使用


    //1.7 包导入的优先级
    /*
    当我们导入一个包时,它会:
    先从项目根目录的 vendor 目录中查找
    最后从 $GOROOT/src 目录下查找
    然后从 $GOPATH/src 目录下查找
    都找不到的话,就报错。
    */


    //step2. go modules 的应用
    //todo




}

你可能感兴趣的:(go得快(3))