プログラムを制御せよ!For!(Go言語)
今回は,Goの制御構文であるfor(繰り返し文)の説明です!
早速ですが,本日の説明用コードの全文はこちら!
package main
import (
"fmt"
)
func main() {
/* 繰り返し文の使い方 */
for1()
for2()
for3()
}
func for1() { /* 基本 */
sum := 0
for i := 0; i < 10; i++ { /* 他の言語と違って,カッコ()が無いですね! */
sum += i
}
fmt.Println("sum = ", sum)
}
func for2() {
sum := 1
for sum < 10 { /* GoにはWhile文はない.その代わり,Goではこのように書く */
sum += sum
}
fmt.Println("sum = ", sum)
}
func for3() {
sum := 1
for { /* 無限ループ(無限に繰り返します) */
sum += sum
}
fmt.Println("this message is not displayed.")
}
ちなみに,Goのサイト
で,説明用コードの実行結果を確認できます!
解説①
まずは,Goのfor文の基本的な使い方...
func for1() { /* 基本 */
sum := 0
for i := 0; i < 10; i++ { /* 他の言語と違って,カッコ()が無いですね! */
sum += i
}
fmt.Println("sum = ", sum)
}
こんな感じです!
よくある言語だと,
for ( i := 0 ; i < 10 ; i++ ) {
}
こんな感じで,for文に括弧があるのですが,Goでは不要です!
基本的にGo言語は,不要なものは,徹底的に省いています!(さすが,ケン・トンプソンとロブ・パイク)
構文としては,
for 初期化; 条件式; 後処理 {
繰り返し処理
}
こんな感じで,それぞれの語句の説明は,
「初期化」:最初の「繰り返し処理」の実行前に,実行されます.
「条件式」:毎回の「繰り返し処理」の実行前に,評価されます.
そして,評価の結果がfalseであれば,for文は終了します.
「後処理」:毎回の「繰り返し処理」の実行後に,実行されます.
「繰り返し処理」:ここに,繰り返したい処理を記述します.
こんな感じです!
解説②
こんな感じで,
func for2() {
sum := 1
for sum < 10 { /* GoにはWhile文はない.その代わり,Goではこのように書く */
sum += sum
}
fmt.Println("sum = ", sum)
}
「初期化」と「後処理」を省くことができます!(「条件式」のみ)
そして,なんとなんと,
この書き方が,Go言語のWhile文です!
Go言語では,
While文はないのです!!
そもそも,While文って不要じゃん!ってのが,Goのスタンスなのでしょうね!うーん,合理的!
解説③
Goの無限ループは,
func for3() {
sum := 1
for { /* 無限ループ(無限に繰り返します) */
sum += sum
}
fmt.Println("this message is not displayed.")
}
こんな感じで書きます!
「初期化」,「条件式」,「後処理」をすべて省くことで,無限ループを表現します!
うーん,簡潔!!
最後に
GoのFor文,どうでしたか?
個人的には,タイピング数が少なくなり,
Goの書き方に慣れると,非常に効率的!
と感じております...
けど,Goの文法を知らい人は,上記の無限ループを見せられても,「??」って感じになりそうですね...w
ここら辺が,Goにネガティブな感想をもつ人が出てくる原因なのでしょう(たぶん...)
まぁ,Goの,言語としての設計思想には,
誰がコーディングしても,だいたい,同じコードになる
というものがあるようなので,
今までの言語と違った書き方や,
余剰な表現がなくなっていたり,
するのでしょう!
まだまだ,発展途上のオープンソースな言語ですので,今後が楽しみですねぇ~(*´ω`*)
それでは,本日はこの辺で('ω')ノ
サポートお願いいたします.主に初心者から中級向けに,ソフトウェア開発に関する知識を提供していきます.