golang if 多个条件怎么简写

if fileFormat == "csv" || fileFormat == "xlsx" || fileFormat == "xls" {

    }

提示能简写,但是不知道怎么写

阅读 19.2k
5 个回答

不在于怎么去简化,而是怎么去封装。比如可以写一个函数:

func InArray(value string, array []string) bool {
    // ...
    return true
}

GO没有太多语法糖,写代码都需要自己去提炼一些常用的工具函数

var fileTypes = map[string]bool{
    "cvs",
    "xlsx",
    "txt",
}
if _,ok := fileTypes[val] ; ok {
   // 存在
} else {
   // 不存在
}

你这个恒为 true 啊,可以直接些 if true{, 然后if true 也可以去掉,变成 { ...


你是不是想用 && ....

你写个InArray数组

fileFormatList :=[]string{"csv","xlsx","xls"}

if InArray(fileFormat,fileFormatList){
    ...
    
}

如果除了Excel的三个类型之外还有其他类型,用switch case的方式比较清晰,case分支可以抽出来对应类型的handler函数去处理相关逻辑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题