LoginSignup
0
0

More than 5 years have passed since last update.

Go言語 関数

Last updated at Posted at 2018-08-28

関数を定義

Go言語の関数の定義はfuncを使用します。

package main
import "fmt"

func main() {
    fmt.Println(add(1, 2))
}

func add(a int, b int) int {
    return a + b
}

引数や戻り値も、変数と同じく型名が後につきます。
これは少し混乱しちゃいますね。。。

もちろん可変長引数も定義できます。

func addAll(items... int) int {
    sum := 0
    for _, item := range items {
        sum += item
    }
    return sum;
}

なんと戻り値は複数返却できます!

func main() {
    add, sub := addOrSub(10, 15)
    fmt.Printf("%d, %d", add, sub)
}

func addOrSub(a int, b int) (int, int) {
    return a + b, b - a
}

関数のスコープ

名前が小文字から始まる場合、他パッケージから参照できないようです。

関数のレシーバ

関数をtype型で宣言した型に関連づけることができます。

package main

import "fmt"

// 身長と体重
type Status struct {
    height float32
    weight float32
}

// BIMを表示
func (s Status) getBMI() {
    fmt.Printf("BMIは%.1fです。", s.weight / (s.height * s.height))
}

func main() {
    var status Status
    // 身長と体重を入力
    status.height = 1.7
    status.weight = 70
    // BMIを表示
    status.getBMI()

}

実行結果

BMIは24.2です。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0