func SumProductDiff(i, j int) (int, int, int) { return i+j, i*j, i-j } 1. 2. 3. 不定参数 如果你对Python比较熟悉,你会知道Python函数参数个数可以是不确定的。和Python类似,Go语言函数也支持可变的参数个数。 在参数列表的最后类型名称前面使用省略号“…”来表示声明一个变长函数,调用该函数...
func f1(x1 int, x2 int) { println(x1 + x2) } //没有参数的函数,也没有返回值的函数 func f3() { fmt.Println("hello world") } //没有参数,但是有返回值的函数 func f4() string { return "Hello World" } //函数的返回值可以命名也不可不命名 func f5(x int, y int) (ret int) ...
packagemainfuncfoo()(errerror) {deferct(&err) ce(bar(),"call bar")return}funcbar()(errerror) {deferct(&err) ce(baz(),"call baz")return}funcbaz()(errerror) {returnme(nil,"baz") }funcmain(){ ce(foo(),"call foo") } paniclog是这样的 panic: foobar: call bar foobar: call baz...
funcdoSomething()error{// 模拟一个失败的操作returnerrors.New("操作失败")}funcmain(){err:=doSom...
typefileErrorstruct{}func(fe*fileError)Error()string{return"文件错误"} 自定义 error 自定义了一个fileError类型,实现了error接口。现在测试下看看效果。 funcmain(){conent,err:=openFile()iferr!=nil{fmt.Println(err)}else{fmt.Println(string(conent))}}//只是模拟一个错误funcopenFile()([]byte,erro...
func (d *DefineError) Error() string { return d.Define + d.Err.Error() } 1. 2. 3. 4. 5. 6. 7. 8. 9. 这样,当函数调用失败返回 err 时,将该 err 包装到一个 DefineError 对象中返回 func Stat() (err error) { err = myFunc() ...
1type errorinterface{2Error()string3} (1)一个例子理解error 代码语言:javascript 复制 1package main2import(3"fmt"4"os"5)6funcmain(){7//试图打开一个并不存在的文件,这将会返回一个error8f,err:=os.Open("/test.txt")9iferr!=nil{10fmt.Println(err)//no such file or directory11return12}13...
19return 20} 21fmt.Printf("Area of circle %0.2f", area) 22} 第二种、通过fmt.Errorf()去订制 函数原型:func Errorf(format string, a ...interface{}) error Errorf根据format参数生成格式化字符串并返回一个包含该字符串的错误。 1err:= fmt.Errorf("error") ...
1typeerror interface {2Error() string3} (1)一个例子理解error 1package main2import(3"fmt"4"os"5) 6func main() {7//试图打开一个并不存在的文件,这将会返回一个error8f, err := os.Open("/test.txt")9iferr != nil {10fmt.Println(err) //no such fileordirectory11return12}13fmt.Printl...
error类型是一个接口类型,这是它的定义: typeerrorinterface{Error()string} (1)一个例子理解error packagemainimport("fmt""os")funcmain(){//试图打开一个并不存在的文件,这将会返回一个errorf,err:=os.Open("/test.txt")iferr!=nil{fmt.Println(err)//no such file or directoryreturn}fmt.Println(f...