Created
May 1, 2022 11:22
-
-
Save tio-iis/4b9b2264e2a791c1f7dbd35cca5335fa to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import "fmt" | |
func main() { | |
//Array | |
//格納できるstringの個数は2個である。 | |
//型推論で定義している。 | |
arr := [2]string{} | |
fmt.Println(arr) | |
//型推論じゃない場合 | |
//var arr [2]string | |
//初期値をあたえることができる。 | |
//arr := [2]string{"iis", "tio"} | |
//fmt.Println(arr) | |
//要素をセットする場合はインデックスを指定する。 | |
//arr[0] = "iis" | |
//arr[1] = "tio" | |
//fmt.Println(arr) | |
//値を取得するときはインデックスを指定する。 | |
//fmt.Println(arr[0]) | |
//配列の長さは len() で取得することができる。 | |
//fmt.Println(len(arr)) | |
//確保した要素数を超えることはできない。 | |
//arr[2] = "desu" | |
//forで要素を取り出すことができる。 | |
//変数のiはインデックスで、vは値になる。 | |
//利用しないものは _ で利用しないことを明示する。 | |
//rangeは要素を最後まで取り出すための指定である。 | |
//for i, v := range arr { | |
// fmt.Println(i) | |
// fmt.Println(v) | |
//} | |
//rangeを利用しない場合は以下のようになる。 | |
//for i := 0; i < len(arr); i++ { | |
// fmt.Println(i) | |
// fmt.Println(arr[i]) | |
//} | |
//ArrayとSliceは特定の要素を削除する機能がない。 | |
//削除したい要素以外をセットしたArray, Sliceを新規作成することで削除する。 | |
//補足ブログに載せる。 | |
//Slice | |
//Arrayのように要素数を指定することがない。 | |
//型推論 | |
//sl := []string{} | |
//fmt.Println(sl) | |
//型推論じゃない場合 | |
//var sl []string = []string{} | |
//make()を利用することでも定義することができる。 | |
//length, capacity という概念を理解する必要があるので、 | |
//一旦↑と同じ定義ということだけ覚えてもらえればいい。 | |
//sl := make([]string, 0) | |
//初期値をセットすることができる。 | |
//sl := []string{"iis", "tio"} | |
//fmt.Println(sl) | |
//スライスに要素を追加するにはappend()を利用する。 | |
//第一引数は追加対象のスライス | |
//第二引数は追加対象の要素 | |
//戻り値は要素を追加したあとの配列である。 | |
//sl = append(sl, "iis") | |
//sl = append(sl, "tio") | |
//sl = append(sl, "desu") | |
//fmt.Println(sl) | |
//値を取得するときはインデックスを指定する。 | |
//fmt.Println(sl[0]) | |
//長さは len() で取得することができる。 | |
//fmt.Println(len(sl)) | |
//append()は複数の様子をまとめて追加することができる。 | |
//sl = append(sl, "iis", "tio", "desu") | |
//fmt.Println(sl) | |
//Arrayと同じようにforで要素を取り出すことができる。 | |
//インデックスはいらないので、 _ にしている。 | |
//for _, v := range sl { | |
// fmt.Println(v) | |
//} | |
/Map | |
//以下のように定義する。 | |
//m := map[string]string{} | |
//fmt.Println(m) | |
//初期値をセットすることができる。 | |
//m := map[string]string{ | |
// "name": "iis_tio", | |
// "address": "tokyo", | |
//} | |
//fmt.Println(m) | |
//値をセットする | |
//m["name"] = "iis_tio" | |
//m["address"] = "tokyo" | |
//fmt.Println(m) | |
//値を取得するときはkeyを指定する。 | |
//fmt.Println(m["name"]) | |
//要素を取得する際に第二戻り値を用意すると、keyの有無を調べることができる。 | |
//存在する場合は true になる。 | |
//v, ok := m["name"] | |
//fmt.Println(ok) | |
//fmt.Println(v) | |
//存在しない場合は false になる。 | |
//v, ok = m["nameeeeee"] | |
//fmt.Println(ok) | |
//fmt.Println(v) | |
//for k, v := range m { | |
// fmt.Println(k) | |
// fmt.Println(v) | |
//} | |
//Mapには要素を削除する機能がある。 | |
//delete()を利用する。 | |
//第一引数は削除対象のマップを指定する。 | |
//第二引数には削除する要素のkeyを指定する。 | |
//delete(m, "name") | |
//fmt.Println(m) | |
//Mapは重複排除に使われる | |
//duplicated_array := []int{1, 2, 3, 3, 4, 5} | |
//not_duplicated_array := []int{} | |
//struct{}は空の構造体定義である。 | |
//値に意味がない場合に利用される。 | |
//myMap := map[int]struct{}{} | |
//for _, v := range duplicated_array { | |
// _, yes := myMap[v] | |
// if !yes { | |
// myMap[v] = struct{}{} | |
// not_duplicated_array = append(not_duplicated_array, v) | |
// } | |
//} | |
//fmt.Println(not_duplicated_array) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment