我正试图制作一个永无止境的自动收报机频道,但它只能工作2次.
你能帮我理解问题出在哪里吗?
码:
package main
import (
"fmt"
"time"
)
var mark = [2]float64{8.9876, 762.098568}
func tick(out chan <- [2]float64){
c := time.NewTicker(time.Millisecond *500)
for range c.C{
out <- mark
}
}
func main() {
fmt.Println("Start")
md := make(chan [2]float64)
go tick(md)
for range <-md{
fmt.Println(<-md)
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Start
[8.9876 762.098568]
[8.9876 762.098568]
Run Code Online (Sandbox Code Playgroud)
反射问题,使用 MethodByName
代码:
package main
import (
"reflect"
"fmt"
)
type test struct {}
var serviceType = map[string]reflect.Value{
"test": reflect.ValueOf(test{}),
}
func (t *test) prnt() {
fmt.Println("test ok")
}
func callFunc(strct string, fName string) {
s := serviceType[strct].MethodByName(fName)
if !s.IsValid(){
fmt.Println("not correct")
return
}
s.Call(make([]reflect.Value,0))
}
func main() {
callFunc("test", "prnt")
}
Run Code Online (Sandbox Code Playgroud)
输出:
not correct
Run Code Online (Sandbox Code Playgroud)
游乐场:https : //play.golang.org/p/ZLEQBGYoUOB
你能帮忙吗,我做错了什么?
go ×2