例如,我使用一个golang标准库函数:
func Dial(network, address string) (*Client, error)
Run Code Online (Sandbox Code Playgroud)
此函数可能会返回错误,我只关心报告"连接丢失"或"连接被拒绝"的错误,然后执行一些代码来修复这些错误.
这好像是:
client, err := rpc.Dial("tcp", ":1234")
if err == KindOf(ConnectionRefused) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
更重要的是,如何获得特定标准库函数可能返回的所有错误?
据我所知,go-lang一开始是C写的,现在是自己写的。我想弄清楚 go-lang 的一些基本实现,例如 multi-return-value-of-function,我猜它可能使用了结构。
但是现在go-lang版本的go-lang源代码已经隐藏了这些细节,那么哪里可以得到C版本的go-lang源代码(历史版本)呢?我检查了 golang.org,没有找到。
谢谢。
请检查以下代码段:
package main
import (
"fmt"
"time"
)
type field struct {
name string
}
func (p *field) print() {
fmt.Println(p.name)
}
func main() {
fmt.Println("use values:")
// use values in range loop and go rountines
values := []field{{"one"},{"two"},{"three"}}
for _, v := range values {
go v.print()
}
time.Sleep(time.Second)
fmt.Println()
fmt.Println("use pointers:")
// use pointers in range loop and go rountines
poniters := []*field{{"one"},{"two"},{"three"}}
for _, v := range poniters {
go v.print()
}
time.Sleep(time.Second)
}
Run Code Online (Sandbox Code Playgroud)
链接到这里:https: …
最近有人问我一个问题,Golang 和 Java 在interface 上有什么区别?
我知道存在一些“语法糖级别”差异,我感兴趣的是地下的任何东西,比如 Golang 和 Java 是如何实现接口的?最大的区别是什么?哪一种更有效率?为什么?
任何人都可以发布有关此主题的博客链接或源代码吗?源代码更好。
谢谢。