Import 使用围棋软件包

Import 使用围棋软件包,import,go,packages,Import,Go,Packages,我不确定如何调用Go包。例如,如果我想创建随机数,我应该导入“math/random”,但它不只是“math”库的一部分吗?那么,为什么这段代码不起作用: package main import( "fmt" "math" ) func main(){ r := rand.New(rand.NewSource(99)) fmt.Println(r) } 我的意思是,我不能通过简单地导入一个超类直接访问随机函数吗(在本例中,仅导入math“math”包)?这

我不确定如何调用Go包。例如,如果我想创建随机数,我应该导入
“math/random”
,但它不只是
“math”
库的一部分吗?那么,为什么这段代码不起作用:

package main

import(
    "fmt"
    "math"
)

func main(){
    r := rand.New(rand.NewSource(99))
    fmt.Println(r)

}

我的意思是,我不能通过简单地导入一个超类直接访问随机函数吗(在本例中,仅导入math
“math”
包)?

这是因为
rand
是一个独立的包,在
math
math/rand
下分层导入,所以您必须具体导入它:

package main

import(
    "fmt"
    "math/rand"
)

func main(){
    r := rand.New(rand.NewSource(99))
    fmt.Println(r)

}

Go既没有类也没有超类。包有简单的名称,名称“math/rand”并不意味着包“math”或它们之间有任何关系(如果有)。当然,标准库是以合理的方式组织的,但是包名和文件夹只是这样,没有任何其他结构内聚的名称和文件夹。