發表文章

目前顯示的是 9月, 2018的文章

[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