考虑以下示例程序,它是 Go 中的原始堆栈实现:
package main
import "fmt"
import "errors"
const MAX_SIZE = 10
var a [10]int
var top int = -1
func main() {
printStack()
push(1)
printStack()
push(23)
printStack()
pop()
push(2)
push(24)
push(56)
push(87)
push(97)
push(47)
push(37)
push(31)
push(69)
printStack()
push(75)
println("Top element is", getTop())
}
func push(x int) (int, error) {
if top >= (MAX_SIZE - 1) {
return 0, errors.New("Error: Prevented Stackoverflow. Stack full")
}
top += 1
a[top] = x
return 0, nil
}
func pop() {
top -= 1
}
func getTop() int {
return a[top]
}
func printStack() {
fmt.Println(top+1, "Stack: ", a, "Top", top)
}
现在,我阅读了错误处理和 Go & 似乎上述返回多个值的方法是在 go 中处理错误的方法。
但我不明白的是,地鼠会检查每个语句的错误吗?来自其他语言的这个概念对我来说有点难以理解。所以问题是
在上述问题中处理错误的惯用方法是什么?
如果我不检查错误是否被认为是一种不好的做法?如果是,那么我应该在push()
每次调用它时检查输出?
基本上我想知道一个有经验的地鼠如何在上面的程序中进行错误处理?
播放网址:https : //play.golang.org/p/_AnZLvY-28
[更新] 添加了一个真实世界的程序,我从数据库和输出中获取数据到 json。http://play.golang.org/p/dDApCYprjU
FFIVE
收到一只叮咚
相关分类