为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
米琪卡哇伊 2023-07-17 13:56:54
我有一个 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 语句中使用它。我不确定这是否可能,但我很想知道。
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

创建一个丢弃错误结果的包装函数:

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

}


查看完整回答
反对 回复 2023-07-17
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

我只是想将字符串转换为整数。


如果我 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 main


import (

    "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


查看完整回答
反对 回复 2023-07-17
  • 2 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信