Golang 中国

nulijiabei

Golang China 第 2838 号会员,加入于 2015-01-30 13:49


nulijiabei最近回复了


回复了 talw 创建的主题: 如何得到Image 的类型? 2018-04-18 19:43

哈哈 虽然我也不知道

回复了 nulijiabei 创建的主题: 如何通过reflect获取类型别名的name 2018-03-05 17:55

大神们,来个解答啊 …

回复了 oneofwower 创建的主题: 一个关于闭包的问题 2018-03-05 13:38
package main

import (
    "fmt"
    "time"
)

type field struct {
    name string
}

func (p *field) print() {
    fmt.Printf("%p %s\n", p, p.name)
}

func TestClosure() {

    // data := []*field{{"one"}, {"two"}, {"three"}}
    one := new(field)
    one.name = "one"
    two := new(field)
    two.name = "two"
    three := new(field)
    three.name = "three"

    data := []*field{one, two, three}

    for _, v := range data {
        go v.print()
    }

    time.Sleep(3 * time.Second)
}

func TestClosure1() {

    // data := []field{{"one"}, {"two"}, {"three"}}

    var one field
    one.name = "one"
    var two field
    two.name = "two"
    var three field
    three.name = "three"

    data := []field{one, two, three}

    for _, v := range data {
        go v.print()
    }

    time.Sleep(3 * time.Second)
}

func TestClosure2() {

    // data := []*field{{"one"}, {"two"}, {"three"}}
    one := new(field)
    one.name = "one"
    two := new(field)
    two.name = "two"
    three := new(field)
    three.name = "three"

    data := []*field{one, two, three}

    //    for _, v := range data {
    //        go func() {
    //            v.print()
    //        }()
    //    }

    for _, v := range data {
        go func(x *field) {
            x.print()
        }(v)
    }

    time.Sleep(3 * time.Second)
}

func main() {
    TestClosure()
    fmt.Println("----")
    TestClosure1()
    fmt.Println("----")
    TestClosure2()
}
回复了 kevin 创建的主题: defer的这个方法不是很理解 2018-03-03 17:16

defer 是在 return 之后执行的 …

package main

import (
    "io"
    "log"
)

func func1(s string) (n int, err error) {
    defer func() {
        log.Printf("func1(%q) = %d, %v", s, n, err)
    }()
    n = 7
    err = io.EOF
    return
}
func main() {
    func1("Go")
}

http://www.nljb.net
http://github.com/nulijiabei

回复了 liuyeid 创建的主题: liteide 怎么支持vendor的补全和跳转? 2017-05-13 16:36

src/ 下 …
// 不可以直接 src/main.go
ProjectName/main.go
// 直接把 vendor 放这里就行
vendor/ …

回复了 fanyang 创建的主题: 关于go1.8 plugin.Open的错误 2016-12-17 19:32

等正式版吧,测试版还不稳定 (nljb.net)

回复了 q464610036 创建的主题: go调用dll崩溃,窗口直接关闭。。。 2016-08-26 16:56

gdb

回复了 创建的主题: 2016-08-26 16:55

gdb

回复了 创建的主题: 2016-08-26 16:55
回复了 nulijiabei 创建的主题: 谁能提供比较详细的 "golang.org/x/net/context" 使用介绍(中文的) 2016-08-26 11:45

谢谢,谢谢

nulijiabei 创建的更多回复