LoginSignup
1
2

More than 3 years have passed since last update.

GOでファイルを分ける時

Last updated at Posted at 2021-03-23

初めに

Goって公開されてるパッケージを組み合わせてなんやかんやするのがメインで
ファイルがすんごく長くなる事ってあんまり考えないのかな?
普通に見にくくなっちゃうと思うので、ファイルを分ける方が好きだったりします。

そして、ファイルを分けるのにドはまりしたので、書いておく
一応Windowsの場合です。

長くなったmain.goを分割する

フォルダ構成はこうしたい!
※一応公式の推奨フォルダ構成を参考にした

GOPATH/
  src/
  └ test/ <-今回のプロジェクトルート
    ├ cmd/
    │ └ textApp/
    │   └ main.go
    └ intarnal/
      └ sub/
        └ sub.go

まずはとりあえず、go mod init 〇〇〇〇 する

CMDで以下を実行

cd GOPATH<皆良い感じに変えてほしい>/test
go mod init locl.l/test

ポイント

go mod init locl.l/testの「.(ドット)」は絶対に必要らしいwww
なんじゃそれ!?

そうすると、こうなる

GOPATH/
  src/
  └ test/ <-今回のプロジェクトルート
    ├ cmd/
    │ └ textApp/
    │    └ main.go
    ├ intarnal/
    │ └ sub/
    │   └ sub.go
    └ go.mod

go.modの中身

go.mod
module local.l/test

go 1.16

sub.goの中身

/internal/sub/sub.go
package sub

import "fmt"

func Rectangle(l int, m int) int {
    return l * m
}

func Intro() {
    fmt.Println("これはsubです。")
}

main.goの中身

/cmd/testApp/main.go
package main

import (
    "fmt"
    "local.l/test/internal/sub"
)

func main() {
    fmt.Println(sub.Rectangle(4, 5))
    sub.Intro()
}

実行する

CMDで

go run cmd/testApp/main.go

すると以下が表示されたのでOK!!

20
これはmypkgです。

ついでにビルドする

推奨のフォルダ構成に則ってbuildフォルダを作る

GOPATH/
  src/
  └ test/ <-今回のプロジェクトルート
    ├ cmd/
    │ └ textApp/
    │    └ main.go
    ├ intarnal/
    │ └ sub/
    │   └ sub.go
    ├ go.mo
    └ build/ <-この中にコンパイルしたexeファイルを入れたい

cmdで実行

go build -o build/test.exe cmd/testApp/main.go 

そしたら、buildフォルダの中にtest.exeができた!

GOPATH/
  src/
  └ test/ <-今回のプロジェクトルート
    ├ cmd/
    │ └ textApp/
    │    └ main.go
    ├ intarnal/
    │ └ sub/
    │   └ sub.go
    ├ go.mo
    └ build/ 
       └ text.exe <- exeファイルができた!

毎回長いコマンド叩くのめんどいからbatファイルを作る

推奨のフォルダ構成に則ってbuildするshとかbatファイルはscriptフォルダ入れるらしい

GOPATH/
  src/
  └ test/ <-今回のプロジェクトルート
    ├ cmd/
    │ └ textApp/
    │    └ main.go
    ├ intarnal/
    │ └ sub/
    │   └ sub.go
    ├ go.mo
    ├ build/ 
    │ └ text.exe
    └ script/ <- scriptフォルダを作った
      └ test_build.bat <- ビルドコマンドを実行するバッチファイルを作った

実行する

script/test_build.bat

コンパイルしたexeファイルを実行する

build\test.exe
20
これはsubです。

OK!

1
2
0

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
1
2