[Go] Golang 相對路徑以及沒有使用gofmt的衍生問題
今天遇到一個奇特的問題
在我將專案內import 的相對路徑改成絕對路徑的時候,竟然出現了一些不知道從哪裡來的物件名稱。
想當然爾,編譯是不會過關的,但前人的編譯確可以順利通過。
肇事原因,就是前人的兩個做法所影響
1. 用相對路徑去import package
2. 沒有用gofmt
情境如下:
"../../kernel/api"
這個其實是幫你找到一個叫做『api 』的資料夾位置
如果我在『api 』這個資料放的package 名稱叫做myservice
這樣是可以過關的,而且你在import "../../kernel/api"的檔案內
可以用 myservice.XXXX ,這個package內的東西!
(原則上package的命名和外面的資料夾名稱應該一樣,這個是不好示範)
目錄如下
kernel - api - send_request.go
send_request.go 檔案內容
package myservice
func begin(){
// todo function implement
}
某個有使用send_request.go檔案的內容
package logic
import "../../kernel/api"
func buildLogic() {
myservice.begin()
}
我看到就是類似myservice.的東西,滿臉的問號它是從哪打來的?
會有這樣的結果,也是因為沒用gofmt
如果有用gofmt,看到未使用的"../../kernel/api"早就被砍掉了,因為裡面沒有地方是用api開頭。
挖屋.....
當然可以的話,還是希望大家都能用絕對路經(專案名稱開頭),和gofmt輔助格式整理。
Created Date : 2018/09/28
Last Updated Date : 2018/09/28
留言
張貼留言