小编mon*_*mey的帖子

在Golang中永远不会结束Ticker只工作2次

我正试图制作一个永无止境的自动收报机频道,但它只能工作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)

示例:https://play.golang.org/p/P2FaUwbW-3

go

8
推荐指数
1
解决办法
527
查看次数

反映(MethodByName)无效

反射问题,使用 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
推荐指数
1
解决办法
712
查看次数

标签 统计

go ×2