请教一个自定义error的问题

2013-11-21 13:00:11 +08:00
 meta
我需要自定义一个error,这个error实际上只有一个字符串,在go里面,类和方法是分开写的。
比如,我要先写一个类:
type MyErr struct{}
再实现Error:
(myErr *MyErr)Error string{
return "xxx error!"
}
然后用的时候:
err = &MyErr{}
但是这个error我只在一个地方用到,专门写这么多感觉很啰嗦,请问有没有什么办法一句话就写完呢。比如直接就是err = xxx什么的。
1605 次点击
所在节点    Go 编程语言
5 条回复
hyq
2013-11-22 09:37:57 +08:00
import (
"errors"
)

var MyErr error = errors.New("xxx error")

func xxx() error {
return MyErr
}
meta
2013-11-22 12:38:04 +08:00
太感谢了,没想到还有errors这个包。
rlx
2013-11-22 19:39:14 +08:00
或者使用 fmt.Errorf(format string, a ...interface{})

import (
"fmt"
)

...

var err = fmt.Errorf("invalid code: %d", val)

...
meta
2013-11-22 21:46:36 +08:00
@rlx 在下初学,想不到go里面Printf函数还有个这么神奇变形。
rlx
2013-11-23 12:58:52 +08:00
多看看 golang 的 api 文档就ok

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/90044

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX