gpt4 book ai didi

go - String 类型声明与 string 不可比

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

我有一个别名类型“LogLevel”,它是一个字符串:

type LogLevel string

const (
InfoLevel LogLevel = "info"
DebugLevel LogLevel = "debug"
WarnLevel LogLevel = "warn"
ErrorLevel LogLevel = "error"
PanicLevel LogLevel = "panic"
FatalLevel LogLevel = "fatal"
)

现在我想做一个 switch case 来根据用户输入检查这些常量:

    switch strings.ToLower(input) {
case "", InfoLevel:
return zap.NewAtomicLevelAt(zap.InfoLevel)
default:
fmt.Errorf("Invalid log level supplied '%s'. Defaulting to info loglevel", input)
return zap.NewAtomicLevelAt(zap.InfoLevel)
}

这不起作用,因为显然类型不兼容?

invalid case InfoLevel in switch on strings.ToLower(input) (mismatched types LogLevel and string)

如何在案例中使用定义的常量?

最佳答案

comparison 中的操作数之一必须是 assignable给另一个。 string 类型不可分配给 LogLevel,反之亦然。要获得可比值,convert stringLogLevel:

switch LogLevel(strings.ToLower(input)) {

关于go - String 类型声明与 string 不可比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55976559/

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