golang 安装私有包是需要账户密码的这时候可以这样设置GIT_TERMINAL_PROMPT=1 go get github.com/xxx/xxx这样可以确保私有仓库在拉取时,如果需要凭证,会在终端提示你输入。其中GIT_TERMINAL_PROMPT 表示允许 Git 在终端交互式地请求凭证
面试的时候有问到这个问题,最近也在琢磨这个问题。像之前经历公司里边,有5、6个项目后台,这些后台仅仅是实现单一的功能。所以在前后端不分离的情况下,很适合php开发。但是如果牵扯到高并发或者长链接这种场景。php 就有些捉襟见肘了。使用php 最灵活的就是array,这种的话,在php中基本上就是万能的。但是不止一家公司对接过程中。客户端吐槽,一会array,一会object。虽然可以依靠写代码人的
```用两个channel来实现阻塞,需要注意的就是最后输出需要考虑其中一个channel已关闭,不能再次触发阻塞
a := []int{1, 2, 3, 4, 5}b := []string{"a", "b", "c", "d", "e"}var wg sync.WaitGroup//两个chanch1 := make(chan struct{})ch2 := make(chan struct
sync.once //为什么不使用这种写法if done.CompareAndSwap(0,1) { func()}sync.Once 的语义是:无论多少 goroutine 调用,f() 只执行一次,而且一旦执行过(不管是否成功),后面都不会再执行。如果直接用 CompareAndSwap:1. 问题的核心:异常/失败处理第一个 goroutine 执行到 CAS 成功 → f() 开始执