Go语言学习Tips(一)

xjtuhit · · 1544 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

defer的边界


defer是以函数为边界的,也就是说,只有在当前函数将要退出的时候才会运行。


Nested channel select的返回



① 对于nested同一个channel select,如何想要层层返回,最好的方式就是直接close channel

package聽main

import聽(
	"fmt"
	"time"
)

func聽main()聽{
	stopc聽:=聽make(chan聽int)
	go聽func()聽{
		select聽{
		case聽<-stopc:
			fmt.Println("stopc聽0")
			select聽{
			case聽<-stopc:
				fmt.Println("stopc聽1")
			}
			fmt.Println("stopc聽2")
		}
	}()

	//聽stopc聽<-聽2
	//聽stopc聽<-聽2
	close(stopc)
	time.Sleep(time.Second聽*聽5)
}

Also SEE: Go Sandbox


Fork别人项目的正确姿势



比如,有一个项目『http://github.com/sirupsen/logrus』,你看他有点不爽想要改点东西。所以fork了一个新的项目『http://github.com/auxten/logrus』,但代码里会有很多『import "http://github.com/sirupsen/logrus/xxx"』


你直接去修改代码项目依旧会引用原版,pull request原作者又不能很快通过,急急急,这时候怎么办呢?


① go get别人代码,这里是聽

go聽get聽github.com/sirupsen/logrus

② 给项目直接添加一个新的remote,指向你自己的repo,命令:

git聽remote聽add聽auxten聽git@github.com:auxten/logrus.git

③ 创建新branch,就叫做aux吧,并且让这个branch指向这个remote。命令:

git聽checkout聽-b聽aux聽&&聽git聽branch聽-u聽auxten/master聽aux

④ 最终的.git/config大概长这样:

[core]
聽聽聽聽repositoryformatversion聽=聽0聽
聽聽聽聽filemode聽=聽true
聽聽聽聽bare聽=聽false
聽聽聽聽logallrefupdates聽=聽true
聽聽聽聽ignorecase聽=聽true
聽聽聽聽precomposeunicode聽=聽true
[remote聽"origin"]
聽聽聽聽url聽=聽https://github.com/sirupsen/logrus聽聽聽聽
聽聽聽聽fetch聽=聽+refs/heads/*:refs/remotes/origin/*
[remote聽"auxten"]
聽聽聽聽url聽=聽git@github.com:auxten/logrus.git聽聽聽聽
聽聽聽聽fetch聽=聽+refs/heads/*:refs/remotes/auxten/*
[branch聽"aux"]
聽聽聽聽remote聽=聽auxten聽聽聽聽
聽聽聽聽merge聽=聽refs/heads/master
[push]
聽聽聽聽default聽=聽upstream

⑤ push代码就用

git聽push聽-u聽auxten聽aux:master


这条命令的意思就是:push并把aux的upstream设置成auxten的master。


方法不是很完美,但是至少能比较优雅地解决本地开发编译的问题。


本文出自:https://zhuanlan.zhihu.com/p/24436747?refer=auxten


■欢迎关注聽Reboot教育Python实战班介绍---11月26日(周六)已开班

详情点击:http://www.51reboot.com/course/actual/

上课形式:面授班 / 网络直播班

报名QQ:979950755聽

本文出自 “Reboot运维开发” 博客,请务必保留此出处http://opsdev.blog.51cto.com/2180875/1884242


有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:xjtuhit

查看原文:Go语言学习Tips(一)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1544 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传