職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

goのコンポジット型--マップ編

2023年01月31日 | GO言語
マップとは


【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト

【マップ(map)とは】
マップ (map) はデータ構造の一つで、キーと値を保持するために使います。また、使用時に宣言しなければならない

一般的には「連想配列」「ディクショナリ」などとも呼ばれますが、Go では map という名前のデータ構造がビルトインのデータ構造として利用できます

【マップ(map)の使い方】
・宣言
変数名 := map[キーのデータ型]値のデータ型{}

・例文
m := map[string]float64{}
または
var m map[string]float64 = map[string]float64{}

// マップサンプルコード
package main

import "fmt"

func main() {
//マップリテラルからマップを作る
var m1 = map[string]int{
"pochi": 5,
"kenta": 3,
"sall": 5,
"tommy": 7,
}
fmt.Println(m1) //マップ全体を出力する

m1["kenta"] = 4 //キーが"kenta"の要素の値を変更する
delete(m1, "tommy") //キーが"Tommy"の要素の値を削除する
fmt.Println(m1) //マップ全体を出力する

fmt.Printf(" pochi=%d\n", m1["pochi"]) //"pochi"の値を出力する

//make()でマップを作る
m2 := make(map[string]int)

//マップのメンバーを登録する
m2["tommy"] = 18
m2["Jhon"] = 22
m2["大田"] = 32

fmt.Println(m2) //マップ全体を出力する

}

・実行
PS D:\GO言語\サンプルプログラム\Go-5\map> go run test.go
map[kenta:3 pochi:5 sall:5 tommy:7]
map[kenta:4 pochi:5 sall:5]
pochi=5
map[Jhon:22 tommy:18 大田:32]
PS D:\GO言語\サンプルプログラム\Go-5\map>
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

goのコンポジット型--配列編

2023年01月23日 | GO言語
goの配列


【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト

【コンポジット型とは】
Goでは複数のデータをまとめ、1つの型として扱うものを「コンポジット型」と呼び、次のようなもんがある。


◆配列
配列は、同じ型のデータを複数保存することが出来るデータ構造です。

1.配列の宣言と使用
・宣言
var name [size]type
・例文
var a [5]int
name:配列変数の名前
size:配列の要素数
type:配列の要素の型

・初期化するには
var a [5]int = [5]int{1,3,5,7,9}

・サンプルコード
// array.go
package main

import "fmt"

func main() {
//配列を宣言して初期化する
var a [5]int = [5]int{1, 3, 5, 7, 9}

//配列の各要素を出力する
for i := 0; i < 5; i++ {
fmt.Printf("a[%d]=%d\n", i, a[i])
}

for i, v := range a {
fmt.Printf("a[%d]=%d", i, v)
}
a[1] = 0 //2番目の要素の値を変更する
a[3] = 0 //4番目の要素の値を変更する
fmt.Println(a) //配列全体を出力する

//配列を作る
var b [5]int

b[1] = 99
b[3] = 99
fmt.Println(b) //配列全体を出力する

}

・実行
PS D:\GO言語\サンプルプログラム\Go-5\array> go run array.go
a[0]=1
a[1]=3
a[2]=5
a[3]=7
a[4]=9
a[0]=1a[1]=3a[2]=5a[3]=7a[4]=9[1 0 5 0 9]
[0 99 0 99 0]

◆配列の特徴
配列は、一旦宣言したら、サイズを変更したり、既存の配列の最後に要素を追加したり、挿入することが出来ない!




コメント (1)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

for・・range文←JavaScriptのforeach文と同じ

2023年01月18日 | GO言語
for・・range文


【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト

◆for・・・range文
for・・・range文は、配列、スライス、文字列、マップ、チヤンネルから受け取った一連の値の各要素すベテに対して処理を繰り返す←JavaScriptのforeach文と同じ

・サンプルコード1
// for・・range文
package main

import "fmt"

func main() {

for i,v := range []string{"りんご","みかん","バナナ"}{
fmt.Println(i,v)

}
}

・実行
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
0 りんご
1 みかん
2 バナナ

・サンプルコード2
// マップ
package main

import "fmt"

func main() {

for i, v := range map[string]int{"りんご": 100, "みかん": 230, "バナナ": 100} {
fmt.Println(i, v)

}
}
・実行
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
りんご 100
みかん 230
バナナ 100

・サンプルコード3
// 繰り返し
package main

import "fmt"

func main() {

for _,v := range []string{"りんご","みかん","バナナ"}{
fmt.Println(v)

}
}
・実行
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
りんご
みかん
バナナ
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

GOで無限ループを作るには

2023年01月17日 | GO言語
GOでwile文は無い!どうする


【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト

◆GOのwile文!
GO言語では、他の言語で使えるwile文が使えない。そのため、無限ループを使いたいときには、forと、 ifと、 breakを組み合わせる。

・サンプルコード
// 無限ループ
package main

import "fmt"

func main() {
var i int

for {
fmt.Println(i)
i++
if i > 5 {
break
}
}
}

・実行
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
0
1
2
3
4
5
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

繰り返し---for文

2023年01月17日 | GO言語
繰り返し---for文


【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト

【for文】
forは、何らかの作業を繰り返して実行したい時に使います。
・書式
for init-expr ; cond-expr ; loop-expr {
stat
}
init-expr:初期化式
cond-expr:終了の判定式
loop-expr:繰り返しごとに評価する式

・プログラムコード
package main
import "fmt"

func main() {

for i := 1; i < 10; i++ {
fmt.Printf("%dの2乗は%d\n",i,i*i)
 }
}

・実行
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
1の2乗は1
2の2乗は4
3の2乗は9
4の2乗は16
5の2乗は25
6の2乗は36
7の2乗は49
8の2乗は64
9の2乗は81

◆ネストを使ってみる
・プログラムコード
// ネスト
package main

import "fmt"

func main() {

var v int
for i := 1; i < 10; i++ {
v = 1
for j := 2; j <= i; j++ {
v = v * j
}

fmt.Printf("%dの階乗は%d\n", i, v)
}
}
・実行
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
1の階乗は1
2の階乗は2
3の階乗は6
4の階乗は24
5の階乗は120
6の階乗は720
7の階乗は5040
8の階乗は40320
9の階乗は362880

◆多重代入を使ってみる
・プログラムコード
// 多重代入
package main
import "fmt"

func main() {

for i, j := 0, 9; i < 10 && j >= 0; i, j = i+1, j-1 {
fmt.Println(i, j)
}
}
・実行
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
0 9
1 8
2 7
3 6
4 5
5 4
6 3
7 2
8 1
9 0

◆break文
// break
package main

import "fmt"

func main() {

for i := 0; i < 10; i++ {
if i > 5 {
break
}
fmt.Println(i)
}
}
PS D:\GO言語\サンプルプログラム\Go-4\for> go run sample.go
0
1
2
3
4
5
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする