LoginSignup
41
14

More than 3 years have passed since last update.

Go言語で同じディレクトリ内の関数呼び出すのにエラーがでる(#command-line-arguments ./main.go: undefined: funcName)

Last updated at Posted at 2017-07-01

タイトルで説明しきれなかったので追加説明すると
main.goと同じディレクトリ階層においてある関数の呼び出しが

go run main.go

では呼べないのである

例えば、GoでAPIを作るときにmain.goにroute書くのは気持ち悪いのでroutes.goに切り出しておきたい

↓みたいなディレクトリ構造があったとする。

//ディレクトリ構造
appName/
  │
  ├ main.go
  └ routes.go

コードには↓みたいに書く

main.go
//省略

func main() {
   RegistersRoutes() //ちなみに関数名の最初の文字は大文字じゃないと呼べない
}
routes.go
//省略

func RegistersRoutes(){
 fmt.Println("ここでGetとか書いていきたい")
}

これで

go run main.go

とかやると

#command-line-arguments ./main.go: undefined: RegistersRoutes) //とか言われる

解決策

go build        # ファイル名を指定しない
# or 
go run main.go routes.go   # 両方共ファイル名を書く 

ここでずっと躓いて、routes/routes.rbとかやってた。

41
14
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
14