選考直結型ガクセイハッカソン 2025.03の開催レポート
2022-08-21 公開
Goの関数や変数について解説します。
前回の解説で使用したimportではimportを複数行書きました。
import "fmt"
import "math"
これは次のように複数をまとめてimportできます。
import (
"fmt"
"math"
)
全体のソースコードは次の様で実際に実行してみましょう。
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.pi)
}
実際に実行してみるとエラーになります。「undefined: math.pi」と表示されます。
Goでは外部に公開したい関数や変数の名前は大文字から始めることで、他のパッケージから呼び出すことができるようになっています。
今回は、piが大文字でないためエラー発生しました。次のように修正すると実行できます。
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Pi)
}
ちなみに同じパッケージ上であれば小文字から始まる関数や変数にもアクセスできます。実際にコードを書いて確認してみます。
hoge.goというファイルを作成します。hoge.goファイル内に次のように記述します。
package main
const hoge = "hogehoge"
main.goファイル内に次の様に記述します。
package main
import "fmt"
func main() {
fmt.Println(hoge)
}
main.goファイルを実行してみます。実行をすると「hogehoge」と表示されます。
関数の記述方法についてです。
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
このadd関数はint型の2つの引数を取ります。また関数名の後に戻り値の型を記述します。
関数で2つ以上の戻り値を返す方法です。
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
関数名の後ろに戻り値の数と同じ数の型を記述することで、複数の戻り値を返すことができます。
戻り値の変数に名前をつける方法についてです。
package main
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println(split(17))
}
split関数のように関数名の後に変数を書き込むことによって、関数内で宣言することなく変数を記述できます。
返り値の変数と型が最初に指定されているため、returnのみで終了できます。
ただし記述方法は長い関数の中で使用してしまうとコードの可読性が損なわれるため、短い関数の中でのみ使用すると良いでしょう。
今回は、変数と関数の基礎文法などを学習しました。次回は、for文について説明をします。