【Go】始め‐モジュール作成とインポート

Go Go

モジュールを作成

mainモジュールの作成手順と同様でフォルダーを作成してからします。

$ mkdir greetings
$ cd greetings
$ go mod init example.com/greetings
go: creating new go.mod: module example.com/greetings

ソースコードを作成します。

$ vi greetings.go
package greetings

import "fmt"

func Hello(name string) string {

    message := fmt.Sprintf("Hi, %v. Welcome!", name)

    return message
}

作成したモジュールをインポート

インポートするmainを作成

$ mkdir hello
$ cd hello
$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello

$ vi main.go

package main

import (

    "fmt"
    "example.com/greetings"

)
func main() {

    message := greetings.Hello("Golang")
    fmt.Println(message)

}

モジュールをインポートする

mainからgreetingsをインポートします。

$ go get example.com/greetings
go: unrecognized import path "example.com/greetings": reading https://example.com/greetings?go-get=1: 404 Not Found

greetingsの場所を教えてもう一度試します。

$ go mod edit -replace example.com/greetings=../greetings

go.modから確認しましょう。

$ cat go.mod
module example.com/hello

go 1.20

replace example.com/greetings => ../greetings

そして依存関係を設定します。

$ go mod tidy
go: finding module for package example.com/greetings
example.com/hello imports
        example.com/greetings: module example.com/greetings@latest found (v0.0.0-00010101000000-000000000000, replaced by ../greetings), but does not contain package example.com/greetings

go.modから確認しましょう。

module example.com/hello

go 1.20

replace example.com/greetings => ../greetings

require example.com/greetings v0.0.0-00010101000000-000000000000

実行してみましょう。!

$ go run main.go
Hi, Golang. Welcome!

main.goの”example.com/greetings”はgo.modのreplaceに従って../greetingsから参照する。

タイトルとURLをコピーしました