首頁 > 後端開發 > Golang > 如何在 Go 結構中同時儲存 String 和 Int 值?

如何在 Go 結構中同時儲存 String 和 Int 值?

Patricia Arquette
發布: 2024-12-03 10:58:09
原創
939 人瀏覽過

How Can You Store Both String and Int Values in a Go Struct?

在Go 結構體中儲存String 和Int 值

在Go 中,不可能將string 和int 值直接儲存在結構體中單一結構體字段。這是由於該語言的強型別系統,它要求變數具有特定的、定義良好的類型。

可能的解決方案

要解決此限制,您可以幾個選項:

  1. 動態轉換輸入:您可以轉換在需要時將int 輸入轉換為字串,並在處理時將其轉換回int。
  2. 定義多個結構體:您可以為不同的輸入類型定義單獨的結構體,例如 testCaseString 和 testCaseInt。
  3. 介面實作:從 Go 1.18 開始,你可以將介面當作一個解決方法。雖然 Go 沒有原生的 sum 類型,但它允許您定義多種類型可以實現的介面。

Go 1.18 及更高版本中的接口實現

使用接口,您可以創建可以同時保存字符串和整數值的類型。這是一個範例:

type Input interface {
    IsValid() bool
    Value() interface{}
}

type TestCaseBool struct {
    input   bool
    isValid bool
}

func (tc TestCaseBool) IsValid() bool {
    return tc.isValid
}

func (tc TestCaseBool) Value() interface{} {
    return tc.input
}
登入後複製

您現在可以使用 TestCaseBool 結構來保存布林值或空介面。

注意:此解決方案需要 Go 1.18或更高等級的工作。

以上是如何在 Go 結構中同時儲存 String 和 Int 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板