Open5
Goについて学んでみた【基礎】
パッケージ
パッケージとは複数のソースコードから成り立っており、デフォルトで用意されているものやカスタムで作成されたものも存在する。
package main
import "fmt"
func main() {
fmt.Println("Hi, there!")
}
package main
パッケージはプログラムのエントリーポイントでありgo buildで実行可能ファイルにするのに必要な記述。
プログラムから最初に実行した時に呼び出される関数です。
import "fmt"
・importは他のパッケージから関数や変数などを使用できるようにしたもの
・mainがない状態で他のパッケージをimportしても呼び出せない。それはmainというエントリーポイントがないとそもそも呼び出せないから。
func main() { fmt.Println("Hi, there!") }
・function → funcという書き方。
・.Printlnで文字列を出力するようにしている。
・型を定義する際は()の後ろに記述する。
配列のスライス操作
var array string = []string{"apple", "banana", "orange"}
// インデックス2番目以降を取得
var result []string = array[2:] // 出力: ["orange"]
// 0番目から2つまでを取得。2番目は含まれない。
var result []string = array[:2] // 出力["apple", "banana"]
// 0番目から2つまでを取得。2番目は含まれない。
var result []string = array[0:2]
変数について
varで変数宣言
var c bool
var c, python, java bool
最後の必ず型を定義。
変数自体は複数宣言もできる。
変数を複数宣言
var i, j = 1, 2
変数に格納する際も値をそれぞれカンマ区切りで入れることができる。
変数の初期宣言で省略
var array string = []string{"apple", "banana", "orange"}
result := array[2:]
変数を初期宣言ときだけ、varから始めなくても:=を記述することで型も明示的にせずとも推論で自動的に型を付与することができる。
固定長の配列からスライスに変換
var b [4]byte
b2 := b[:]
fmt.Println(b2)
b[:]
と入力すると固定長の配列からスライスに変換できる。
for文の使い方
基本
JavaScriptやCと違って3つの部分を丸括弧で囲む必要はない。
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
初期化と後処理の記述は任意
左にあった初期化と右にあった後処理についてはなくても大丈夫。
sum := 1
for ; sum < 1000 {
sum += sum
}
条件式
while文はなくて、for文だけ条件式を当てはめるだけでwhile文としての機能させる。
sum := 1
for sum < 1000 {
sum += sum
}
無限ループ
forだけで記述すれば無限ループになる。
for {
}