如何在 Go 結構中同時儲存 String 和 Int 值?
Dec 03, 2024 am 10:58 AM在Go 結構體中儲存String 和Int 值
在Go 中,不可能將string 和int 值直接儲存在結構體中單一結構體字段。這是由於該語言的強型別系統,它要求變數具有特定的、定義良好的類型。
可能的解決方案
要解決此限制,您可以幾個選項:
- 動態轉換輸入:您可以轉換在需要時將int 輸入轉換為字串,並在處理時將其轉換回int。
- 定義多個結構體:您可以為不同的輸入類型定義單獨的結構體,例如 testCaseString 和 testCaseInt。
- 介面實作:從 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中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)