我有一张 类型的地图set
,实际上是map[string]string
. 然而,将它传递给接受 a 的函数会map[string]string
失败,因为 Go 不识别set
为 1。
然而,我无法说服编译器它是其中之一。有没有办法解决这个问题,而不需要循环和复制?
package main
import (
"fmt"
)
type name string
type field string
type set map[name]field // map[string]string after all
type plain map[string]string // also map[string]string
func 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)
}
慕码人2483693
相关分类