Cou氏の徒然日記

ほのぼの日記ブログです。

Go言語の学習 その3 (importとdebug)

◆ Go言語のパッケージインポート(import)

今回は、別ソースに関数を実装、いわゆるソース分離をしてみようかなと。

main.go(main関数を定義)と同じ階層に、hello.go を作成。

 

パッケージ名は、mainと同じ階層なので、mainとして、

Hello, world!を標準出力する処理を print_hello関数として実装です。

package main

import "fmt"

func print_hello() {
	fmt.Println("Hello, world!")
}
[main.go]

あとは、main.goのmain関数から、標準出力処理をコメント化(削除)。

package main

import "fmt"

func main() {
	//fmt.Println("Hello, world!")
	print_hello()
}

 

さて、これで実行してみると…

何やらエラー。

どうやら、main.goでは、fmtパッケージをインポートしていますが、実際には未使用なので(未使用になってしまったので)、下記定義がエラーとなっているようです。

import "fmt"

どうやら、Go言語では、未使用パッケージの定義があると、エラーとなってしまうようです。

実際、JavaやCなどでは、各importしているパッケージが使用しているのか未使用なのかは調べないとわからないですし、未使用でも別に重くなるだけでエラーにはなりませんでしたが、Go言語はそのあたり、しっかりしているみたいですね。

 

削除して実行してみると…今度はエラーにならずに起動できました。

Windows板だと、

  • 「F10」で ステップオーバー
  • 「F11」で ステップイン

のようで、関数にステップインしてみると、きちんと呼び出されていることもわかります。

ちなみにデバッグ実行中は、上記のようなexeファイル(実行ファイル)が一時的に生成されるようですね。