gpt4 book ai didi

go - 如何在运行时更改变量类型

转载 作者:数据小太阳 更新时间:2023-10-29 03:38:33 25 4
gpt4 key购买 nike

<分区>

我想知道是否可以在运行时改变变量的类型,例如:

package main

import "github.com/fatih/structs"

type T struct {
MyField bool
}

func main() {
fakeVariable := ""

s := structs.New(T{})
for _, field := range s.Fields() {
field.Set(fakeVariable)
}
}

由于 MyField 是 bool 值,我想将 fakeVariable 更改为 bool 值,预期结果是 MyField 为 false(因为空字符串为 false)。但是 MyField 类型可以是任何类型,所以我想知道如何将它转换为 MyField 类型。我知道我可以使用 field.Kind() 获取字段类型,并且:

field.Set(fakeVariable.(field.Kind())

不会工作。

fakeVariable 将始终是一个字符串,但它可以保存值“10.0”,如果 MyField 的类型是 float,它应该转换为 float,但如果它是字符串,它应该只分配它。有道理吗?

如果我正在尝试的是可能的,有什么想法吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com