Help us understand the problem. What is going on with this article?

Golangの変数とか関数とか[基礎]

More than 5 years have passed since last update.

環境

OS X : 10.9.3
Golang : 1.3

変数

実際に変数を使ったサンプルから。

20140713修正-変数の型の決定方法-

variable.go
package main

import (
    "fmt"
)

func main(){
    var num int = 1
    //変数の型は静的に推論される
    var str = "型は静的に推論"
    real := 1.23

    fmt.Println(num)
    fmt.Println(str)
    fmt.Println(real)
}

実行結果

$ go run cariable.go
1
動的に型は決定
1.23

うまく出力されるようですね。ふむ。
変数宣言の方法がいくつかあるので紹介です。

変数宣言

基本型

var 変数名 型 = 初期値

省略型

var 変数名 = 初期値

省略型Second Edition

変数名 := 初期値

宣言方法の選択は可読性や理解性を考慮した上で自己責任でお願いします。
(推奨されているのはどれか知らないので教えてください)

追記あり

関数

使ってみましょう、習うより慣れよ。

func.go
package main

import (
    "fmt"
)

func add(x int, y int) int {
    return x + y
}

func sub(x, y int) int {
    return x - y
}

func addAndSub(x, y int) (int, int) {
    return x + y, x - y
}

func main() {
    fmt.Println(add(100, 200))
    fmt.Println(sub(100, 200))
    fmt.Println(addAndSub(100, 200))
}

実行結果

$ go run func.go
300
-100
300 -100

てってれー。おkです。

関数宣言

宣言の方法の一般形は以下です

func 関数名(仮引数名 型, ...) 返り値の型 {
  処理
  ...
}

また、Go言語では複数の返り血を浴びることができるようです。

複数の返り値

これを「多値」というそうですが、さておき構文をば。

func 関数名(引数1 型1, ...) (型1, 型2, ..., 型n) {
    処理
    return 値1, 値2, ..., 値n
}

こんな感じでしょうか。

このほか、返り値に返り値を変数名で指定などもできるようですが、今回は割愛。機会があれば。

おわりに

Golangの基礎の基礎をメモ。
制御文を今度は軽くまとめれれば。

間違いのご指摘などあればコメント等で教えていただけると幸いです。

追記

20140713

変数宣言方法に関して

変数宣言には3種類あると記載しました。
基本型省略形省略形2ですね。
それぞれの用途に関してコメントを頂いたので追記しておきます。

基本型

var 変数名 型 = 初期値
でしたね。
これは、もし初期値を宣言時に設定しない場合に用いられることが多いようです。例えば、
var number int
のように、必要な変数の宣言のみの場合です。

省略形

var 変数名 = 初期値
でしたね。
これは、主にパッケージ変数の宣言に用いるようです。
現在、私も勉強している最中なのでパッケージ変数を扱っておりませんが、そこで再び触れたいと思います。悔しいです。

省略形2

変数名 := 初期値
でしたね。
これが現在ソースコードで最も目にする宣言方法のようです。
多言語を学んだことのある人なら、この宣言、これで大丈夫か...と思ってしまうくらい楽ですね。魅力的です。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away