duannaiying9662 2019-08-21 13:46
浏览 92
已采纳

将字符串的错误值丢掉进行int转换

I have a Go program that I simply want to convert a string to an int. I understand the function:

val, err := strconv.Atoi(myValueAsAString)

works and I can check the error by the following:

if err != nil {
    //handle error
}

But what if I am 100% the string will be a number, and I want to convert it to an int in an if statement, like the following:

if 45 + strconv.Atoi(value) >= 90 {
    //do something
}

But strconv.Atoi also returns an error value as well, so how can I throw that away and essentially do what I did above, without having to define the variable above the if statement and use it in the if statement. I'm not sure if this is possible or not, but I would love to know.

  • 写回答

2条回答 默认 最新

  • duanquan1876 2019-08-21 13:48
    关注
    1. Create a wrapper function that discards the error result:
    func atoi(s string) int {
        value, _ := strconv.Atoi(s)
        return value
    }
    
    if 45 + atoi(value) >= 90 {
        //do something
    }
    
    1. Or, do the conversion as a statement before the if and ignore the error result:
    if i, _ := strconv.Atoi(value); 45 + i >= 90 {
        // do something
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据