1 回答

TA貢獻1856條經(jīng)驗 獲得超5個贊
我想我明白了。您可以創(chuàng)建一個包裝器類型,它包含當前對象以及輸出值。如果有人有其他想法,我也對它們感興趣:
package main
type object map[string]interface{}
type token[T any] struct {
object
value T
}
func newToken[T any](m object) token[T] {
return token[T]{object: m}
}
func (t token[T]) get(key string) token[T] {
switch val := t.object[key].(type) {
case object:
t.object = val
case T:
t.value = val
}
return t
}
例子:
package main
func main() {
obj := object{
"one": object{
"two": object{"three": 3},
},
}
three := newToken[int](obj).get("one").get("two").get("three")
println(three.value == 3)
}
- 1 回答
- 0 關注
- 135 瀏覽
添加回答
舉報