丢弃字符串到 int 转换时的错误值

我有一个 Go 程序,我只想将字符串转换为 int。我理解的功能:


val, err := strconv.Atoi(myValueAsAString)

有效,我可以通过以下方式检查错误:


if err != nil {

    //handle error

}

但是,如果我 100% 字符串将是一个数字,并且我想在 if 语句中将其转换为 int,如下所示:


if 45 + strconv.Atoi(value) >= 90 {

    //do something

}

但 strconv.Atoi 也返回一个错误值,所以我如何扔掉它并基本上执行上面所做的操作,而不必在 if 语句上方定义变量并在 if 语句中使用它。我不确定这是否可能,但我很想知道。


米琪卡哇伊
浏览 89回答 2
2回答

红颜莎娜

创建一个丢弃错误结果的包装函数:func atoi(s string) int {    value, _ := strconv.Atoi(s)    return value}if 45 + atoi(value) >= 90 {    //do something}或者,在 之前作为语句进行转换if并忽略错误结果:if i, _ := strconv.Atoi(value); 45 + i >= 90 {    // do something}

胡说叔叔

我只是想将字符串转换为整数。如果我 100% 字符串将是一个数字怎么办?我想在 if 语句中将一串数字转换为 int,如下所示:if 45 + strconv.Atoi(value) >= 90 {    //do something}如果你错了怎么办?为 编写一个简单的 Go 包装函数strconv.Atoi。在 Go 中,不要忽视错误。// ASCII digits to integer.func dtoi(s string) int {    i, err := strconv.Atoi(s)    if err != nil {        panic(err)    }    return i}例如,package mainimport (    "fmt"    "strconv")// ASCII digits to integer.func dtoi(s string) int {    i, err := strconv.Atoi(s)    if err != nil {        panic(err)    }    return i}func main() {    value := "1024"    if 45+dtoi(value) >= 90 {        fmt.Println("do something")    }}游乐场:https://play.golang.org/p/I3plKW2TGSZ输出:do something
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go