go run server.goand in another terminal
go run client.go| package main | |
| import ( | |
| "fmt" | |
| ) | |
| func main() { | |
| for i:=0; i<10; i++ { | |
| go fmt.Println(i) | |
| } |
| package main | |
| import ( | |
| "reflect" | |
| "fmt" | |
| ) | |
| type Test struct { | |
| fn interface{} | |
| args []reflect.Value |
| package main | |
| import ( | |
| "fmt" | |
| "net" | |
| "io" | |
| ) | |
| func main() { | |
| //http.HandleFunc("/", handler) |
| func CopyStruct(src, dst interface{}) { | |
| sval := reflect.ValueOf(src).Elem() | |
| dval := reflect.ValueOf(dst).Elem() | |
| for i := 0; i < sval.NumField(); i++ { | |
| value := sval.Field(i) | |
| name := sval.Type().Field(i).Name | |
| dvalue := dval.FieldByName(name) | |
| if dvalue.IsValid() == false { |
| //error handle | |
| //when exit, print stack out | |
| func foo() { | |
| if err := recover(); err != nil { | |
| debug.PrintStack() | |
| log.Error("Error: ", err) | |
| }() | |
| } |