職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

ファイル分割とローカルパッケージ

2023年08月24日 | GO言語
Goのファイル分割


【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト

1,ファイル分割無しの場合
・「main.go」ファイル
package main

import (
"fmt"
)

func foo() {
fmt.Println("foo")
}

func bar() {
fmt.Println("bar")
}

func main() {
foo()
bar()
}
・実行
PS D:\GO言語\サンプルプログラム\ファイル分割> go run main.go
foo
bar

2.同じパッケージ(ディレクトリ)内でファイル分割

「main.go」ファイルのコード
package main

import (
"fmt"
)

func foo() {
fmt.Println("foo")
}

func main() {
foo()
Bar() // 外部ファイルの関数を使用する場合、頭文字は大文字
}

「bar.go」ファイルのコード
package main

import (
"fmt"
)

func Bar() { // 外部ファイルで使用される場合、頭文字は大文字
fmt.Println("bar")
}

PS D:\GO言語\サンプルプログラム\ファイル分割> go run main.go bar.go
foo
bar
ファイル2つをいっぺんに渡す

◆別パッケージ(ディレクトリ)でファイル分割
project
├─ main.go
├─ bar.go
├─ pkg_baz
│ └─ baz.go
└─ go.mod

・「main.go」ファイル
package main

import (
"fmt"
"project/pkg_baz" // baz.go までのパス
)

func foo() {
fmt.Println("foo")
}

func main() {
foo()
Bar()
pkg_baz.Baz() // パッケージ名を頭につける
}
・「bar.go」
package main

import (
"fmt"
)

func Bar() { // 外部ファイルで使用される場合、頭文字は大文字
fmt.Println("bar")
}
・「baz.go」ファイル
package pkg_baz // パッケージ名はディレクトリ名と同じにする

import (
"fmt"
)

func Baz() {
fmt.Println("baz")
}
・「go.mod」ファイル
module project // モジュール名はディレクトリ名と同じにする

go 1.18
PS D:\GO言語\サンプルプログラム\ファイル分割\project> go run .
foo
bar
baz

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Basic認証 | トップ | JSONファイル »
最新の画像もっと見る

コメントを投稿

GO言語」カテゴリの最新記事