概要
今回のブログポストではGolangで関数を定義して使う方法について説明します。このブログポストで紹介するコードは次のリンクで確認できます。
関数の定義
Golangで関数を定義して使う方法について確認してみましょう。関数を定義して使う方法を確認するため、main.go
ファイルを生成して次のように修正します。
package main
import "fmt"
func Add(a int, b int) int {
return a + b
}
func main() {
c := Add(1, 2)
fmt.Println(c)
}
関数は次のように関数定義キーワードであるfunc
を使って定義します。
// func 関数名(パラメータ...) リターンタイプ {
// コードブログ
// }
func Add(a int, b int) int {
return a + b
}
もし、パラメータが同じタイプが連続してる時は、次のようにタイプを省略することができます。
func Add(a, b int) int {
return a + b
}
PublicとPrivate
GolangではPublic
とPrivate
と言うキーワードは存在しないが、大文字と小文字でPublic
関数とPirvate
関数を判別します。
- 関数名が大文字で始まる:
Public
関数 - 関数名が小文字で始まる:
Private
関数
Public
関数は他のパッケージで当該関数を使うことができますが、Private
関数は当該パッケージ内のみで使うことができます。
マルチリターン関数
Golangでは次のように関数が複数の値をリターンすることができます。
func Divide(a, b int) (int, bool) {
if b == 0 {
return 0, false
}
return a / b, true
}
func main() {
c, success := Divide(10, 2)
fmt.Println(c, success)
d, success := Divide(10, 0)
fmt.Println(d, success)
}
Golangdeha次のように:=
(Short variable declarations)を使って変数を宣言する時、すでに変数名が使えていると、コンパイルエラーが発生します。
func main() {
c, success := Divide(10, 2)
c, success := Divide(10, 0) // ERROR!
fmt.Println(c, success)
}
:=
は変数を新く宣言して割り当てることを意味しますので、重複された名前では新しい変数を生成することができないのでです。しかし、マルチリターン関数でリターンされる値を保存する変数名は1つ違うとコンパイルエラーが発生しません。
func main() {
c, success := Divide(10, 2)
fmt.Println(c, success)
d, success := Divide(10, 0)
fmt.Println(d, success)
}
出力値に名前を指定
マルチリターン関数では、次のようにリターンされる値を保存する変数名を指定することができます。
func Divide(a, b int) (result int, success bool) {
if b == 0 {
result = 0
success = false
return
}
result = a / b
success = true
return
}
関数の深化
これ以外にも関数は色んな機能があります。もっと詳しく勉強したい方は下記のブログポストを参考してください。
完了
これでGolangで関数を定義して使う方法についてみてみました。また、GolangでPublic
とPrivate
関数を判別するため、関数名の最初文字を使うことが分かりました。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。