亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在 Golang 中將命名類型映射[字符串]字符串轉換為普通類型

在 Golang 中將命名類型映射[字符串]字符串轉換為普通類型

Go
慕絲7291255 2023-06-26 15:05:40
我有一張 類型的地圖set,實際上是map[string]string. 然而,將它傳遞給接受 a 的函數會map[string]string失敗,因為 Go 不識別set為 1。然而,我無法說服編譯器它是其中之一。有沒有辦法解決這個問題,而不需要循環和復制?package mainimport (    "fmt")type name stringtype field stringtype set map[name]field      // map[string]string after alltype plain map[string]string // also map[string]stringfunc main() {    var typed = set{"hi": "ho"} // map[string]string?    back := plain(typed)  // cannot convert typed (type set) to type plain    back := typed.(plain) // invalid type assertion: typed.(plain) (non-interface type set on left)    echo(back)}func echo(in map[string]string) {    fmt.Println(in)}
查看完整描述

1 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

您可以使用不安全的包來做到這一點。


注意:我認為這不一定是一個好主意,可能正確的方法是迭代和復制,但因為它確實回答了所提出的問題......


var typed = set{"hi": "ho"} // map[string]string?

p := unsafe.Pointer(&typed)

var back plain

back = *(*plain)(p)

游樂場: https: //play.golang.org/p/yienSuJSnQU


查看完整回答
反對 回復 2023-06-26
  • 1 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號