init関数が実行される順番

パッケージ初期化で利用されるinit関数がどのタイミングで実行されるのか確認します。

動作確認コード

以下、mainパッケージの処理です。

package main

import (
	"fmt"

	"sample/init_test"
)

func init() {
	fmt.Println("main init()")
}

func main() {
	fmt.Println("main main()")
	init_test.Echo()
}

以下、init_testパッケージ内の処理です。init関数test2変数 の初期化をしています。

package init_test

import "fmt"

var (
	test1 = "aaa"
	test2 []int
)

func init() {
	const max = 3
	test2 = make([]int, max)
	for i := 0; i < max; i++ {
		test2[i] = i * 10
	}
	fmt.Printf("init_test init() test1=%v test2=%v\n", test1, test2)
}

func Echo() {
	fmt.Printf("init_test Echo() test1=%v test2=%v\n", test1, test2)
}

実行結果

init_test init() test1=aaa test2=[0 10 20]
main init()
main main()
init_test Echo() test1=aaa test2=[0 10 20]
  1. importされた init_testパッケージ 内の init関数 が実行されています。
  2. mainパッケージ内の init関数 が実行されています。
  3. mainパッケージ内の main関数 が実行されています。

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。