やりたいこと
Goでハッシュチェーンを実装しています。
Goで書くのはほぼ初めてなのですが、構造体配列の使い方で困っています。
実際に書いたコード
次のようなプログラムを書きました。
Go
1package main 2 3import ( 4 "crypto/sha256" 5 "fmt" 6) 7 8func main() { 9 Array := [...]string{"0001", "0002", "0003", "0004"} 10 h := sha256.New() 11 12 //構造体を定義 13 type Block struct { 14 Index int 15 DataBlock string 16 Hash string 17 } 18 19 //構造体配列を定義 20 type BlockArray []*Block 21 var hashChain BlockArray 22 23 for i := 0; i < len(Array); i++ { 24 if i == 0 { 25 h.Write([]byte(Array[i])) 26 hashChain[i] := Block{i, Array[i], fmt.Sprintf("%x", h.Sum(nil))} 27 fmt.Printf("%x \n", hashChain[i].Hash) 28 }else{ 29 var message string 30 message = Array[i] + hashChain[i-1].Hash 31 h.Write([]byte(message)) 32 hashChain[i] := Block{i, Array[i], fmt.Sprintf("%x", h.Sum(nil))} 33 fmt.Printf("%x \n", hashChain[i].Hash) 34 } 35 fmt.Printf("%x \n", hashChain[i].Hash) 36 } 37} 38
エラー
実行した際のエラーがこちらです
% go run hashChain.go # command-line-arguments ./hashChain.go:38:13: non-name hashChain[i] on left side of := ./hashChain.go:44:13: non-name hashChain[i] on left side of :=
やったこと
型推論が原因かと思い、調べましたがこの記事のように、型推論ではないようです
何かの基礎的知識が抜けているのであれば、そのあたりをご指摘もらえると幸甚です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/09 08:05