亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從子目錄訪問函數

從子目錄訪問函數

Go
30秒到達戰場 2021-10-11 10:41:24
我正在按照http://golang.org/doc/code.html編寫小應用程序我的目錄樹看起來像-blog  -bin  -pkg  -src    -github.com      -packages_that_i_imported    -myblog      -config        routes.go      server.go我的server.go文件包含以下代碼package mainimport "..." //ommited importsfunc main(){    r:= mux.InitRoutes()  //function from imported package    Register_routes(r)  //function from routes.go}還有我的 routes.gopackage mainfunc Register_routes(r *Router){  r.addRoute("test", "test", "test)}但是在我這樣做之后,我go run server.go 收到了以下錯誤$ go run server.go # command-line-arguments./server.go:10: undefined: Register_routesGOPATH 變量指向我的/blog文件夾我錯過了什么?為什么 go 看不到子目錄中的文件?PS config/routes.go 是 server.go 包的一部分PPS 我已將 routes.go 移動到與 server.go 相同的文件夾,但錯誤仍然存在
查看完整描述

1 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

為了使用另一個包中定義的函數,首先你必須導入它:

import "myblog/config"

之后你必須通過包名來引用它:

config.Register_routes(r)

此外,包名稱應反映定義它的文件夾名稱。在您的 routes.go 中,包應該是config. 包main是特殊的,main包會被編譯成可執行的二進制文件(它是程序的入口點)。請參閱語言規范中的程序執行。

從您鏈接的頁面:包名稱:

Go 的約定是包名是導入路徑的最后一個元素:導入的包"crypto/rot13"應該是 named rot13。

可執行命令必須始終使用 package main。

沒有要求包名在鏈接到單個二進制文件的所有包中是唯一的,只要求導入路徑(它們的完整文件名)是唯一的。

查看博客文章包名稱以獲取詳細指南。

請注意,同一包的不同文件必須放在同一文件夾中。并且同一包的不同文件可以使用包中的所有內容,而無需導入它,也無需使用包名稱(與定義在哪個文件中無關)。對于未導出的標識符也是如此。從另一個包中,您只能訪問導出的標識符(它們的名稱必須以大寫字母開頭)。

此外,go 命名約定是使用混合大寫字母而不是下劃線來編寫多詞名稱,請參閱Effective Go / MixedCaps。所以函數應該被命名,RegisterRoutes但這不是必需的。


查看完整回答
反對 回復 2021-10-11
  • 1 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號