Quantcast
Channel: Go4 Advent Calendarの記事 - Qiita
Viewing all articles
Browse latest Browse all 25

GoのSlice操作

$
0
0

はじめに

この記事はGo4 Advent Calendar 2018 14日目です。

最近Goをさわりはじめて、AtCoderでGoを使って100問ほど解いてきました。問題を解く中で、使う機会があったSliceの扱いについてまとめました。急いで書いたのもあってやや内容が少なめですが、時間を見つけて随時更新していこうと思います。

append

Sliceの末尾に要素を追加します。

s := []string{"A", "B"}
fmt.Println(s) //[A B]

s = append(s, "C")
fmt.Println(s) // [A B C]

s = append(s, "D", "E")
fmt.Println(s) // [A B C D E]

s = append(s, s...)
fmt.Println(s) // [A B C D E A B C D E]

pop

Sliceの先頭要素の取り出し

s := []string{"A", "B", "C", "D", "E"}
fmt.Println(s) // [A B C D E]

h := s[0]
s = s[1:]
fmt.Println(h) // A
fmt.Println(s) // [B C D E]

h = s[0]
s = s[1:]
fmt.Println(h) // B
fmt.Println(s) // [C D E]

Sliceの末尾要素の取り出し

s := []string{"A", "B", "C", "D", "E"}
fmt.Println(s) // [A B C D E]

h := s[len(s)-1]
s = s[:len(s)-1]
fmt.Println(h) // E
fmt.Println(s) // [A B C D]

h = s[len(s)-1]
s = s[:len(s)-1]
fmt.Println(h) // D
fmt.Println(s) // [A B C]

remove

indexを指定して削除

s := []string{"A", "B", "C", "D", "E"}
fmt.Println(s) // [A B C D E]

index := 1
s = append(s[:index], s[index+1:]...)
fmt.Println(s) // [A C D E]

s = append(s[:index], s[index+1:]...)
fmt.Println(s) // [A D E]

insert

indexを指定して挿入

s := []string{"A", "B", "C", "D", "E"}
fmt.Println(s) // [A B C D E]

index := 2
s = append(s, "")
copy(s[index+1:], s[index:])
s[index] = "G"
fmt.Println(s) // [A B G C D E]


Viewing all articles
Browse latest Browse all 25

Trending Articles