Go语言中的字符串处理 发布时间: 2021-07-22 08:50:34 评论数: 0
1 概述字符串,string,一串固定长度的字符连接起来的字符集合。Go语言的字符串是使用UTF-8编码的。UTF-8是Unicode的实现方式之一。Go语言原生支持字符串。使用双引号(“”)或反引号(``)定义。双引号:””, 用于单行字符串。反引号:``,用于定义多行字符串,内部会原样解析。示例:// 单行 "心有猛虎,细嗅蔷薇" // 多行 ` 大风歌 大风起兮云飞扬。 威加海内兮归故乡。 安得猛士兮守四方! `字符串支持转义字符,列表如下:\r  回车符(返回行首)\n  换行符(直接跳到下一行的同列位置)\t  制 ......
nsq nsqlookupd代码解析(二) 发布时间: 2021-07-19 04:18:37 评论数: 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 ......
RWMutex是读写锁 发布时间: 2021-07-17 10:23:11 评论数: 0
最近在看nsq源码,其中看到了下面的代码 代码清单 github.com/nsqio/nsq/nsqlookupd/nsqlookupd.go type NSQLookupd struct { sync.RWMutex opts *Options tcpListener net.Listener httpListener net.Listener waitGroup util.WaitGroupWrapper DB *RegistrationDB } RWMutex是读写互斥锁。 ......
nsq nsqlookupd代码解析(一) 发布时间: 2021-07-14 20:43:56 评论数: 0
之前的文章nsq安装【推荐阅读:nsq消息队列安装测试】,最后执行了./test.sh,这个脚本其实就遍历文件夹build go程序,具体遍历了apps和bench文件夹的程序 这里主要讲nsqlookupd build这个github.com/nsqio/nsq/apps/nsqlookupd/nsqlookupd.go程序 这个文件主要使用了go-svc的包 github地址:https://github.com/judwhite/go-svc 运行一下他的Example我猜测Init方法应该跟init方法等同,之后执行Start方法,当执行关闭的时候执行Stop方法 代码清单g ......
Go语言的包管理 发布时间: 2021-07-12 13:45:55 评论数: 0
1 概述Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。2 main包Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,需要import导入!3 包定义,packageGo 语言的包与文件夹一一对应,同一个目录下的所有.go文件的第一行添加 包定义,以标记该文件归属的包,演示语法:package 包名包需要满足:一个目录下的同级文件归属一个包。包名可以与其目录不同名。包名为 main 的包为应用程序的入口包,其他包不能使用。包可以嵌套定义,对应的就是嵌套目 ......
go cache2go源码分析 发布时间: 2021-07-10 04:51:08 评论数: 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 ......
nsq nsqlookupd中的go-svc包 发布时间: 2021-07-06 20:28:35 评论数: 0
nsqlookupd使用go-svc包来启动的 github地址:https://github.com/judwhite/go-svc 这个包我看到了类似于守护进程的方式运行程序,下面是一个demo,go-svc也是使用了这个方法 package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { c := make(chan os.Signal, 1) sig := []os.Signal{syscall.SIGINT, syscall ......
Go原生支持javascript ajax post跨域请求的方法 发布时间: 2021-07-05 04:53:09 评论数: 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语言生成指定长度范围的随机数值 发布时间: 2021-07-02 15:57:02 评论数: 0
想要生成1000-9999之间的随机数值import ( "math/big" "crypto/rand" ) func RandInt64(min,max int64) int64{ maxBigInt:=big.NewInt(max) i,_:=rand.Int(rand.Reader,maxBigInt) if i.Int64()<min{ RandInt64(min,max) } return i.Int64() }调用rnd := util.RandInt64(1000,9999) ......
go fmt String接口 发布时间: 2021-06-29 23:48:51 评论数: 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" ......
docker linux namespace系统资源隔离 发布时间: 2021-06-26 18:40:22 评论数: 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 ......
Mac下搭建go语言开发环境 发布时间: 2021-06-24 07:23:15 评论数: 0
1、安装Golang的SDKhttp://golang.org ,下载最新的安装包,之后双击安装即可。安装完成之后,打开终端,输入go、或者go version(查看安装版本)出现如下信息即表示安装成功:$ go version go version go1.5.1 darwin/amd642、配置环境变量安装完sdk之后接下来便是配置环境变量了,打开终端输入cd ~ 进入用户主目录,之后输入ls -all命令查看是否存在.bash_profile文件,存在既使用vim .bash_profile打开并编辑该文件。根据自己实际情况,内容如下:export GOPATH=/Use ......
Go 编译应用软件相关设置 Golang的跨平台编译程序 发布时间: 2021-06-20 22:14:01 评论数: 0
各平台的GOOS和GOARCH参考OSARCHOS versionLinux386 / amd64 / arm>= Linux 2.6darwin386 / amd64OS X (Snow Leopard + Lion)freebsd386 / amd64>= FreeBSD 7Windows386 / amd64>= Windows 2000编译方法例如linux的64位软件CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o 存放位置 ./main.gomac的64位就是CGO_ENABLED=0 GOOS=d ......
go html/template模板输出html 发布时间: 2021-06-19 08:16:39 评论数: 0
我在学习go语言,并且尝试写一个博客,数据库用的还是wordpress的数据库,没有使用go语言的框架,想用原生的go写 在使用html/template 模板包的时候发现没有办法输出html,主要我想把博客的内容输出来,结果显示 html竟然转义了 查看官方的说明文档 官方说明 # 比如你想输出 Hello, <b>World</b>! 网页上源码上会显示 Hello, &lt;b&gt;World&lt;b&gt;! 解决方法 template.HTML("<b>World</b>") 在写的是这段 ......
go语言学习资料 发布时间: 2021-06-18 00:21:53 评论数: 0
最近有在看go语言,网上的资料还不是很多,现在把有用的资料分享一下,发现还有新的资源会持续更新 Go Web 编程 # Go语言圣经(中文版) # Go入门指南 # Go 编程基础(视频) # Go Web基础(视频) # 我还买了本《go 语言实战》刚开始看了两章,感觉还不做 ......
go 条件编译 发布时间: 2021-06-15 04:07:19 评论数: 0
最近在看nsq 的nsqlookupd 其中用到了go-svc包,于是顺带看了一下代码,其中有一点不是很明白,就是一个包里出现了相同的方法,程序也没有报错, svc_other.go文件和svc_windows.go文件都实现了Run方法 终于知道他是怎么实现的 原因在于是 svc_other.go文件最上面 // +build !windows svc_windows.go文件最上面 // +build windows 这个是go语言的条件编译,之前没有遇到过,所以要写文章记录一下 // +build !windows 这个是不在windows下可以编译 // +build win ......
go 常见的配置文件格式与使用 发布时间: 2021-06-13 00:23:13 评论数: 0
每一个系统都需要配置文件,比如mysql的配置,redis的配置,mail的配置等,在go语言中经常使用到哪种格式的配置文件 ①使用json conf.json文件 { "enabled": true, "path": "/usr/local" } main.go文件 package main import ( "encoding/json" "fmt" "os" ) type configuration struct { Enabled bool Path string } func ......
Go包管理工具godep 发布时间: 2021-06-10 06:52:19 评论数: 0
godep是go的包管理工具 github:https://github.com/tools/godep 安装方式 go get github.com/tools/godep 使用godep包管理工具不能在使用go run和go build,如果直接使用还是会到GOPATH目录下去找第三方库 正确做法 godep go run godep go build 项目目录下执行执行godep save,此时会生成Godeps文件夹,同时会把所需的包放到vendor文件夹中 ......
go代码interface转map 发布时间: 2021-06-08 00:10:36 评论数: 0
今天遇到一个问题如下代码,我要通过rs去打印出ddd package main import "fmt" func main() { var rs interface{} rss := make(map[string]string) rss["aaa"] = "ddd" rs = rss fmt.Println(rs) } 从上面的代码中我们可以看出来,rs已经是一个map了,但是按照map的打印方式,就是报错 message: 'invalid operation: rs["ddd"] (type interface ......
go 上传EXCEL并解析 发布时间: 2021-06-06 18:52:20 评论数: 0
用php来做文件的上传并解析EXCEL,在实际的开发中是很常见的,比如订单的批量导入,用php也能处理,但在实际的开发中你进程遇到,导入文件只导入版,解析EXCEL只处理了一半,如果不检查数据可能发现不了这个问题,如果用go来做这个功能就大大提高了处理能力 下面是我写的一个测试 使用的是github.com/xuri/excelize来解析EXCEL 安装方式: go get github.com/xuri/excelize package main import ( "fmt" "io" "net/http" "os" "path" "time" ......


友情链接: php5000技术知识分享 github 码云 开源中国 csdn linux中国 阿里云 unix技术网 composer中文网 php packagist php python 安卓软件 大众源码 DevStore 猪八戒威客网 人人都是产品经理 PHPwind论坛 互联网的一些事 新客网 黑马程序员 火星时代 hao123it ThinkSNS 开源社区 51CTO学院 办事儿网 IT论坛 java教程 最代码 程序员客栈 大数据培训 小程序开发 微信小程序 php开发新闻 微信小程序 java学习 微信小程序 Linux书籍 网站ip流量 xw素材网 新浪云 腾讯云 华为云 百度 新浪 网易 淘宝 腾讯 1688 搜狐 优酷 房天下 hao123 携程 天涯社区