- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下测试strconv.Atoi()
的基本代码:
package main
import (
"fmt"
"strconv"
)
func main() {
var a int
var b string
var err Error
b = "32"
a,err = strconv.Atoi(b)
fmt.Println(a)
fmt.Println(err)
}
我想处理
strconv.Atoi()
中是否存在错误,特别是如果该错误是由于语法或范围以及
strconv.Atoi()
可以提供的条件引起的。为此,我尝试了以下方法:
package main
import (
"os"
"fmt"
"strconv"
)
func main() {
var a int
var b string
var err error
b = "32"
a,err = strconv.Atoi(b)
if(err.Err == ErrSyntax) {
fmt.Println("ERROR")
os.Exit(1)
}
fmt.Println(a)
fmt.Println(err)
}
我得到这个结果:
% go build test.go
# command-line-arguments
./test.go:19:8: err.Err undefined (type error has no field or method Err)
./test.go:19:16: undefined: ErrSyntax
我想了解如何处理
Atoi
可以返回的两个错误(
ErrSyntax
,
ErrRange
)。
最佳答案
您可以使用 errors
包(Working with Errors in Go 1.13):
if errors.Is(err, strconv.ErrSyntax) {
fmt.Println("syntax error")
os.Exit(1)
}
关于go - 如何检查从函数(strconv.Atoi)返回的err类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63234360/
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
我有以下代码: var i2 uint64; var err error; i2, err = uint64(strconv.ParseInt(scanner.Text(), 64, 64)); 我收
当尝试对通过 URL 传递的变量(GET 变量命名时间)使用 strconv 时,GoLang 编译失败,说明如下: multiple-value strconv.Atoi() in a single
我正在使用以下代码对从string到int和uint的编码进行基准测试: package main import ( "strconv" "testing" ) func Benchm
我有以下测试strconv.Atoi()的基本代码: package main import ( "fmt" "strconv" ) func main() {
我正在尝试解析这种格式的文件: 12 0,1,2,3,1,2,3,4,2,3,4,5 1,0,1,2,2,1,2,3,3,2,3,4 2,1,0,1,3,2,1,2,4,3,2,3 3,2,1,0,4
我最终会编写这样的代码。我需要一个常规的 int(用于其他一些函数调用),但 parseInt 只生成 64 位 int: i64, err := strconv.ParseInt(s, 10, 0)
我只是想使用类型开关来处理时间、float32 和 float64。它适用于时间和 float64s,但 strconv.FormatFloat(val, 'f', -1, 32) 一直告诉我不能使用
我有一个 Excel 文件和一个用户表单,用户可以在其中输入学生的详细信息,该表单将检查是否重复,然后将信息添加到表格的最后一行。我想通过使用以下代码使表单大写每个名称的第一个字母来进一步改进它: M
我想将字符串转换为字节数组。 (是的)我已经看到关于这个主题的多个问题,但我没有发现答案对我有太大帮助。在大多数情况下,问题相当缺乏。我一直在做一些研究,我将在下面发布我的发现。 这些都是我发现的在
我有一个简短的程序,可以将一些二进制数转换成它们的 ASCII 等价物。我试着把它翻译成 go今天发现 strconv.Itoa() 没有像我预期的那样工作。 // translate Compute
我可能在这里遗漏了一些非常简单的东西: package main import ( "fmt" "strconv" "reflect" ) func main() {
过去一天左右,我无缘无故地使用 Go 构建了一个汇编程序,以便熟悉这门语言。这是我使用 Go 的第一个真正的程序,所以我预料到会出现问题,但我一次又一次地遇到一个一致的错误。在其他情况下,我只是想出了
我正在尝试用 Go 制作一个基本的加法计算器(这里完全是菜鸟),但每次我得到的输出都是 0。 这是代码: package main import ( "fmt" "strconv"
运行这段代码看看我的意思:Go Playground demo of issue package main import ( "fmt" "strconv" ) func main()
我写了这样的一次性代码,strconv.Itoa(time.Nanoseconds())。但是,它给我这个错误“不能使用 time.Nanoseconds()(类型 int64)作为函数参数中的类型
这听起来像是一个愚蠢的问题......但我在任何地方都找不到 strconv.Itoa 中的“a”实际上代表什么。如果它取一个整数并把它变成一个字符串,为什么这个函数不叫 Itos? 最佳答案 整数到
我正在尝试在这个小程序中获取用户输入。我已经尝试使用 strconv.Atoi() 方法以多种方式执行此操作(我的输入显然是一个字符串,我正在尝试将其转换为整数)。这是我的第一次尝试: package
我有一个像这样的 STRING slice 数组: [[header1 header2 startdate enddate header3 header4] [item1 100 01/01/2017
我有以下代码: reader := bufio.NewReader(os.Stdin) fmt.Print("room: width x length: ") inStr, _ := reader.R
我是一名优秀的程序员,十分优秀!