第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

恐慌:采空區(qū):類型 elliptic.p256Curve 沒有導(dǎo)出字段

恐慌:采空區(qū):類型 elliptic.p256Curve 沒有導(dǎo)出字段

Go
湖上湖 2023-02-14 17:46:22
當(dāng)我遇到有關(guān) gob Serialize 的問題時,我正在嘗試構(gòu)建一個區(qū)塊鏈項目。我有一個使用 elliptic.P256() Curve 結(jié)構(gòu)的結(jié)構(gòu)錢包,當(dāng)我嘗試序列化錢包時,出現(xiàn)了沒有導(dǎo)出字段的錯誤。真的希望得到一些幫助。有我的代碼。const walletFile = "Wallets.dat"type Wallets struct {    WalletsMap map[string]*Wallet}type Wallet struct {    PrivateKey ecdsa.PrivateKey    PublicKey []byte}func (w *Wallets) SaveWallets() {    var content bytes.Buffer    gob.Register(elliptic.P256())    encoder := gob.NewEncoder(&content)    err := encoder.Encode(&w)    if err != nil {        log.Panic(err)    }    err = ioutil.WriteFile(walletFile, content.Bytes(), 0644)    if err != nil {        log.Panic(err)    }}func NewWallets() (*Wallets, error) {    if _, err := os.Stat(walletFile); os.IsNotExist(err) {        wallets := &Wallets{}        wallets.WalletsMap = make(map[string]*Wallet)        return wallets, err    }    fileContent, err := ioutil.ReadFile(walletFile)    if err != nil {        log.Panic(err)    }    var wallets Wallets    gob.Register(elliptic.P256())    decoder := gob.NewDecoder(bytes.NewReader(fileContent))    err = decoder.Decode(&wallets)    if err != nil {        log.Panic(err)    }    return &wallets, nil}問題2022/09/18 19:42:33 gob: type elliptic.p256Curve has no exported fieldspanic: gob: type elliptic.p256Curve has no exported fields
查看完整描述

3 回答

?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗 獲得超7個贊

將您的 Go 版本更改為1.18.10 for less。由于最新的 Go 版本,即 1.19.5,我遇到了同樣的問題

我們需要以舊方式降級 Go 版本,因為 Go 不提供像花哨的版本管理器這樣的東西。

降級Go版本的步驟:

  1. 卸載現(xiàn)有的 Go 版本

    要卸載 Go,請找到 Go 在您系統(tǒng)上的位置。

    $where go此命令將在用戶路徑中定位程序文件。

    要卸載,請刪除/usr/local/go您在上一個命令中作為輸出收到的目錄或源目錄。使用命令$ sudo rm -rf /usr/local/go刪除Go目錄。

    確認(rèn)運(yùn)行命令,如果成功刪除Go目錄,$ go version系統(tǒng)會提示“command go not found” 。

  2. 安裝新版本

    轉(zhuǎn)到下載頁面并下載與您的操作系統(tǒng)和體系結(jié)構(gòu)兼容的版本發(fā)布(選擇安裝程序而不是存檔以方便您自己使用)。解壓縮并解壓縮軟件包安裝程序,新的 Go 版本現(xiàn)在已安裝在您的系統(tǒng)中。

之后,您需要重新啟動終端才能使更改生效。要檢查您是否已成功安裝 Go,請運(yùn)行命令$go version。該命令打印已安裝的 Go 版本。還要確保GOROOT并且GOPATH沒有改變。


查看完整回答
反對 回復(fù) 2023-02-14
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗 獲得超7個贊

您在這里似乎想做的是序列化包中的 P256 曲線crypto/elliptic。問題是該P256()函數(shù)返回一個名為elliptic.Curve.

此錯誤告訴您的是 的基礎(chǔ)類型elliptic.Curve(在本例中為elliptic.p256Curve)沒有任何導(dǎo)出的字段(以首字母大寫命名)。使用的Goreflectencoding/gob僅適用于導(dǎo)出的字段。

您可能想嘗試使用crypto/ellipticMarshal()函數(shù)GenerateKey()


查看完整回答
反對 回復(fù) 2023-02-14
?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗 獲得超8個贊

它在 Go 的 1.9.* 版本中存在問題。例如,只需安裝 1.8.7。一切都會在這之后正常工作)



查看完整回答
反對 回復(fù) 2023-02-14
  • 3 回答
  • 0 關(guān)注
  • 377 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號