毎日1つのGo言語の小文法-GOのデータ構造

14517 ワード

Goのデータ構造
  • 配列
  • slice
  • map

  • 以上、slice以外はよく知られていますが、sliceスライスはダイナミックな配列に詳しいと理解できます.定義された長さの古いルールを使用して直接例を挙げる必要はありません.
    はいれつ
  • は2つの定義方式を用いることに注意し、一般的に後者の
  • に傾く.
    package main
    
    import (
    	"fmt"
    )
    
    func DefineArray(){
    	//       
    	var x [5] int
    	x[0] = 1
    	x[2] = 2
    	x[3] = 4
    	fmt.Println("       :", x)
    
    	//            
    	result := [...]int{5,6,7,8}
    	fmt.Println(result)
    
    func main() {
    	DefineArray()
    }
    
  • ここで注意するのは、未知の長さを設定したい場合result:=[...]int{5,6,7,8}これは
  • をよく使用します.
    Slice
    package main
    
    import (
    	"fmt"
    )
    
    func DefineSlice(){
    	//     slice
    	var x [] int
    	// append  
    	result := append(x,2,3,4)
    	fmt.Println(" slice   :", result) //    
    	fmt.Println(" slice   :", len(result)) //     
    	fmt.Println(" slice       :", cap(result))
    
    	//     slice
    	test := [] int {1,2,3,4}
    	fmt.Println(test)
    
    	//            
    	numbers := []int{5,6,7,8}
    	fmt.Println("numbers[1:4] ==", numbers[1:4])
    }
    
    
    func main() {
    )
    	DefineSlice()
    }
    
  • ここではsliceのいくつかの簡単な使い方を紹介しました
  • pythonスライスのような動作
  • numbers := []int{5,6,7,8}
    fmt.Println("numbers[1:4] ==", numbers[1:4]) //  1-4       
    // output:[6 7 8]
    
  • 一般的なappendメソッド追加値
  • var x [] int
    // append  
    result := append(x,2,3,4)
    // output:[2 3 4]
    

    Map
    mapはよく知られている検索速度で有名ですが、自分が検索が遅いことに気づいたら、直接mapに行くとその速度は2倍以上になります.
    package main
    
    import (
    	"fmt"
    )
    
    func DefineMap() {
    	//     map
    	var x map[string]int
    	x = make(map[string]int)  //    map,           nil map ,           
    	x ["key1"] = 2
    	x ["key2"] = 3
    	fmt.Println(x)
    
    	//      map
    	// make(map[key     ][      ])
    	result := make(map[string]int)
    	result["key2"] = 4
    	result["key3"] = 5
    	fmt.Println(x)
    
    	//   map key
    	for key, value := range result{
    		fmt.Printf("key:%v, value:%v
    "
    ,key,value) } // val, exist := result["key3"] // value key , 0, exist= True key , False fmt.Println(val, exist) // delete(result, "key3") fmt.Println(result) } func main() { //DefineSlice() //DefineArray() //DefineMap() DefineSlice() }

    output: map[key1:2 key2:3] map[key1:2 key2:3] key:key2, value:4 key:key3, value:5 5 true map[key2:4]