2017-02-12 13 views
1

以下は、配列内の各値の出現回数を出力する必要がある私のコードです。エントリーへの割り当て:パニックを:私が得たGoLang配列内の値の出現数を出力する

dict[10] = 2 
dict[20] = 2 
dict[30] = 1 

エラー:

package main 

import "fmt" 

func main(){ 
    //Initialize an array 
    inputArray := []int{10,20,30,56,67,90,10,20} 
    printUniqueValue(inputArray) 
} 

func printUniqueValue(arr []int){ 
    //Create a dictionary of values for each element 
    var dict map[int]int 
    count := 0 
    for _ , num := range arr { 
     dict[num] = count+1 
    } 
    fmt.Println(dict) 
} 

しかし、私は次のように望むように私は、辞書を辞書を構築することができませんでした[10]は値2 サンプル予想される出力を持つべきですin nil map

答えて

2

dictをゼロ以外のマップで初期化する必要があります。 1つの方法はvar dict = make(map[int]int)となります。

これを修正した後は、論理エラーdict[num] = count+1に対処する必要があります。ここで、その値のカウントは、以前の値より1つではなく1(カウントは常に0)に設定されています。

2
package main 

import "fmt" 

func main(){ 
    //Initialize an array 
    inputArray := []int{10,20,30,56,67,90,10,20} 
    printUniqueValue(inputArray) 
} 

func printUniqueValue(arr []int){ 
    //Create a dictionary of values for each element 
    dict:= make(map[int]int) 
    for _ , num := range arr { 
     dict[num] = dict[num]+1 
    } 
    fmt.Println(dict) 
} 

これはmap[67:1 90:1 10:2 20:2 30:1 56:1]

印刷します
関連する問題