nsq nsqlookupd代码解析(二)
发布时间: 2022-04-20 20:46:05 评论数: 0
nsqlookupd.go Main里主要是侦听两个服务tcp 服务和http 服务
代码片段 github.com\nsqio\nsq\nsqlookupd\nsqlookupd.go
func (l *NSQLookupd) Main() {
ctx := &Context{l}
//监听tcp
tcpListener, err := net.Listen("tcp", l.opts.TCPAddress)
if err != nil {
l.logf(LOG_FATAL, "listen (%s) faile ......
docker linux namespace系统资源隔离
发布时间: 2022-04-18 04:47:52 评论数: 0
linux namespace是Kernel的功能,它会隔离系统的资源,如PID,UTS,IPC,UserID,Network,docker也用到了这部分的内容,下面是go代码只要实现了这功能
package main
import (
"log"
"os"
"os/exec"
"syscall"
)
func main() {
cmd := exec.Command("sh")
cmd.SysProcAttr = &syscall.SysProcAtt ......
Go语言中利用append巧妙的删除slice切片中的元素
发布时间: 2022-04-10 10:23:28 评论数: 0
数组[a b c],我要删掉第二个元素。余下[a c]注意参数的索引package main
import (
"fmt"
)
//删除函数
func remove(s []string, i int) []string {
return append(s[:i], s[i+1:]...)
}
func main() {
s := []string{"a", "b", "c"}
fmt.Println(s)
s = remove(s, 1)
fmt.Println(s)
} ......
go cache2go源码分析
发布时间: 2022-04-07 03:14:16 评论数: 0
今天看了cache2go源码,cache2go是一个用Go实现的并发安全的缓存库,主要是代码量少,学习一下
cache2go github地址: #
从开始使用的代码开始分析
github上有examples目录,写的是使用的demo,examples/callbacks/callbacks.go,我开始从这个文件开始分析
代码清单 1-1 examples/callbacks/callbacks.go 11行
cache := cache2go.Cache("myCache")
使用了cache2go库中的Cache,返回一个CacheTable的地址
代码清单 2-1 cache ......
go语言的iota
发布时间: 2022-03-31 03:30:21 评论数: 0
网上看了看iota.反正是没看大懂.给个例子自己悟吧package main
import (
"fmt"
)
const (
TestMin = -1
TestA
TestB = iota
TestC
)
func main() {
fmt.Printf("TestMin:%d\n", TestMin)
fmt.Printf("TestA:%d\n", TestA)
fmt.Printf("TestB:%d\n", TestB)
fmt.Printf("TestC:%d\n", TestC)
}输出结果TestMin:- ......
Go原生支持javascript ajax post跨域请求的方法
发布时间: 2022-03-24 20:07:22 评论数: 0
最近开始入手Go.这儿将平时整理的记录一下.今天的需求是,客户端请求GoServer,然后需要支持跨域.开启贴代码模式func main() {
mux := http.NewServeMux()
mux.HandleFunc("/lvtao", lvtao)
if err := http.ListenAndServe("127.0.0.1:8080", mux); err != nil {
//这儿报错
}
}
func lvtao(w http.ResponseWriter, r *http.Request) {
......
go fmt String接口
发布时间: 2022-03-21 22:44:23 评论数: 0
之前看到一段代码,输出接口让我无法理解,如下
package main
import "fmt"
type Person struct {
Name string
Age int
}
func (p Person) String() string {
return fmt.Sprintf("%v (%v years)", p.Name, p.Age)
}
func main() {
a := Person{"Arthur Dent", 42}
z := Person{"Zaphod Beeblebrox" ......