golang -- 字符串操作

相关包有strings, strconv 判断是否以某字符串打头/结尾 strings.HasPrefix(s string, prefix string) bool => 对应python的str.startswith  strings.HasSuffix(s string, suffix string) bool => 对应python的str.endswith 字符串分割 strings.Split(s string, sep string) []string => 对应...阅读全文

阅读:8615 评论:0

golang 中regexp包用法

本文转自Golove博客:http://www.cnblogs.com/golove/p/3270918.html regexp 包中的函数和方法 // regexp.go ------------------------------------------------------------ // 判断在 b 中能否找到正则表达式 pattern 所匹配的子串 // pattern:要查找的正则表达式 // b:要在其中进行查找的 []byte // matched:返回是否找到匹配项 // ...阅读全文

2014-10-20 21:06 chenbaoke
阅读:55624 评论:1

WebSocket 和 Golang 实现聊天功能

本文同步至 http://www.waylau.com/go-websocket-chat/ 这个示例应用程序展示了如何使用 WebSocket, Golang 和 jQuery 创建一个简单的web聊天应用程序。这个示例的源代码在 https://github.com/waylau/goChat 。 Running the example 运行示例 这个示例需要 Golang 开发环境。 该页面描述如何安装开发环境。 一旦你去启动和运行,您可以下载、构建和运行的例子, 使用命令: go get...阅读全文

阅读:6329 评论:1

golang fmt格式“占位符”

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} ...阅读全文

阅读:174973 评论:15

Go语言的参数解析(flag)

flag参数解析,我原以为会了,结果今天发现,原来比我印象中还强大些. 索性记一下. 第一个例子是常见用法: //Flag例1 //author:Xiong Chuan Liang //date:2015-4-10 package main import ( "flag" "fmt" "os" ) var ( levelFlag = flag.Int("level", 0, "级别") bnFlag int ) func init() { flag.IntVar(&bnFlag, "bn", 3...阅读全文

2015-04-10 16:24 xcltapestry
阅读:9802 评论:0

golang学习之旅:使用go语言操作mysql数据库

1.下载并导入数据库驱动包 官方不提供实现,先下载第三方的实现,点击这里查看各种各样的实现版本。这里选择了Go-MySQL-Driver这个实现。地址是:https://github.com/go-sql-driver/mysql/。 然后按照里面的说明下载驱动包: $ go get github.com/go-sql-driver/mysql 最后导入包即可: import "database/sql" import _ "github.com/go-sql-driver/mysql" 2.连...阅读全文

2015-05-06 23:56 michaellau
阅读:57826 评论:0

[Go语言]WebSocket用法演示

HTML部分 在网页上放置一个按钮和一个文本框,按钮用来向服务器发送信息,文本框用来显示从服务器传回的消息。 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> <script type="text/javascript" src="js/loli.js"></script> </head> <body> <p><...阅读全文

2015-01-01 16:45 jthmath
阅读:6997 评论:1

golang 中AES加密详解

golang标准库中对于aes加密的阐述得非常简洁,如果没有一定的密码学基础知识,是很容易迷惑的。 本文将完整地介绍aes加密的基本知识,并分析网络上常见的调用实例。 块密码的工作模式简洁 主要摘抄自wikipedia:块密码的工作模式 基本概念 密码学中,块密码的工作模式(英语:mode of operation)允许使用同一个块密码密钥对多于一块的数据进行加密,并保证其安全性。 块密码自身只能加密长度等于密码块长度的单块数据,若要加密变长数据,则数据必须先被划分为一些单独的密码块。通常而言,...阅读全文

2016-06-15 17:07 xiaohu50
阅读:17514 评论:0

Go语言中的单引号、双引号、反引号

=Start= 搜索关键字: golang single quotes golang double quotes golang back quotes 参考结果: 结论写在最前:在Go语言中不倾向于使用单引号来表示字符串,请根据需要使用双引号或反引号。 一个Go语言字符串是一个任意字节的常量序列。Go语言的字符串类型在本质上就与其他语言的字符串类型不同。Java的String、C++的std::string以及python3的str类型都只是定宽字符序列,而 Go语言的字符串是一个用UTF-8编...阅读全文

阅读:26093 评论:1

golang json

1、Go语言的JSON 库 Go语言自带的JSON转换库为 encoding/json 1.1)其中把对象转换为JSON的方法(函数)为 json.Marshal(),其函数原型如下 func Marshal(v interface{}) ([]byte, error) 也就是说,这个函数接收任意类型的数据 v,并转换为字节数组类型,返回值就是我们想要的JSON数据和一个错误代码。当转换成功的时候,这个错误代码为nil 在进行对象转换为 JSON 的过程中,会遵循如下几条规则: • 布尔型转换为...阅读全文

阅读:3928 评论:2

Golang使用amqp发送消息

1.为什么使用信道(channel)而不使用TCP连接发送AMQP命令? 对操作系统来说频繁的建立和销毁TCP连接开销非常昂贵,而操作系统每秒建立的连接是有上限的,性能瓶颈不可避免,而只建立一条TCP连接无疑是一个很好的方案,在这条连接当中建立多条信道与RabbitMQ进行私密通信,相当于光纤电缆一样,一条电缆有多条光束,信道是没有限制的 2.队列 1)AMQP的命令basic.consume与basic.get 如果需要消息一到达队列就自动接收的话,应该使用basic.consume basi...阅读全文

阅读:7067 评论:0

命令: go build

go help build 构建编译由导入路径命名的包,以及它们的依赖关系,但它不会安装结果. 使用 go build [-o 输出名] [-i] [编译标记] [包名] 如果参数为***.go文件或文件列表,则编译为一个个单独的包。当编译单个main包(文件),则生成可执行文件。当编译单个或多个包非主包时,只构建编译包,但丢弃生成的对象(.a),仅用作检查包可以构建。当编译包时,会自动忽略'_test.go'的测试文件。 参数 -o output 指定编译输出的名称,代替默认的包名。 -i i...阅读全文

2017-02-21 18:00:42 0zaki1sc
阅读:52902 评论:0

Golang mysql

还是那句话,服务器嘛,每个数据库支持,那成啥子啦嘛! 好吧,今天,就让Go能连上数据库,当然是之前给你铺垫的MySql的啦,哈哈 一。安装第三方包支持访问mysql数据库 #go get github.com/go-sql-driver/mysql 二。写一个主程序 //database.go package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func checkErr(err erro...阅读全文

2017-10-27 22:00:01 woodzcl
阅读:1674 评论:0

Go 系列教程 —— 27. 组合取代继承

欢迎来到 [Golang 系列教程](https://studygolang.com/subject/2)的第 27 篇。 Go 不支持继承,但它支持组合(Composition)。组合一般定义为“合并在一起”。汽车就是一个关于组合的例子:一辆汽车由车轮、引擎和其他各种部件组合在一起。 ## 通过嵌套结构体进行组合 在 Go 中,通过在结构体内嵌套结构体,可以实现组合。 组合的典型例子就是博客帖子。每一个博客的帖子都有标题、内容和作者信息。使用组合可以很好地表示它们。通过...阅读全文

2018-03-25 21:42:48 heyulong
阅读:16439 评论:0

Go 系列教程 —— 28. 多态

欢迎来到 [Golang 系列教程](https://studygolang.com/subject/2)的第 28 篇。 Go 通过[接口](https://studygolang.com/articles/12266)来实现多态。我们已经讨论过,在 Go 语言中,我们是隐式地实现接口。一个类型如果定义了接口所声明的全部[方法](https://studygolang.com/articles/12264),那它就实现了该接口。现在我们来看看,利用接口,Go 是如何实现多态的。 #...阅读全文

2018-03-25 21:47:13 heyulong
阅读:19103 评论:0

Go语言 Channel <- 箭头操作符 详解

Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。它的操作符是箭头 <- 。[plain] view plain copy print?ch <- v    // 发送值v到Channel ch中  v := <-ch  // 从Channel ch中接收数据,并将数据赋值给v  ch <- v // 发送值v到Channel ch中 v := <-ch // 从Channel ch中接收数据,...阅读全文

阅读:27922 评论:0

Golang 中好的代码 vs 不好的代码

最近我被问到关于 `Golang` 好代码和不好的代码的一些细节问题,我发现这个问题非常有趣,有趣到可以就这个问题写一篇文章。为了阐明我的观点,我举了一些我在 `Air Traffic Management`(`ATM`)航空交通管制领域的代码例子,这些代码托管在 [Github](https://github.com/teivah/golang-good-code-bad-code) 上。 ## 背景 首先,简短地描述一下项目的背景。 `Eurocontrol` (欧洲航管组...阅读全文

阅读:2840 评论:1

golang 使用pprof和go-torch做性能分析

软件开发过程中,项目上线并不是终点。上线后,还要对程序的取样分析运行情况,并重构现有的功能,让程序执行更高效更稳写。 golang的工具包内自带pprof功能,使找出程序中占内存和CPU较多的部分功能方便了不少。加上uber的火焰图,可视化显示,让我们在分析程序时更简单明了。 pprof有两个包用来分析程序一个是net/http/pprof另一个是runtime/pprof,net/http/pprof只是对runtime/pprof包进行封装并用http暴露出来,如下图源码所示: 使用net/...阅读全文

2018-07-30 18:01 li-peng
阅读:1039 评论:0

golang中encoding/binary包

1、golang包中的binary包是什么? 2、binary为我们开发者提供了哪些内容?以及怎么使用? 3、编解码有哪几种方法? 转化成二进制格式与原本数据转字符串相比会更节省空间 一、golang包中的binary包是什么? 此包实现了对数据与byte之间的转换,以及varint的编解码。 二、binary为我们开发者提供了哪些内容?以及怎么使用? 数据的byte序列化转换 func Read(r io.Reader, order ByteOrder, data interface{}) e...阅读全文

阅读:2857 评论:0

看看这篇拯救发际线的干货吧--警惕 Go 编程陷阱

在2019年08月17日举办的 Gopher Meetup(深圳站)活动上,来自 Bindo Labs 公司的李雄飞进行了 《Go 编程陷阱》的演讲。李雄飞,Bindo Labs 后端技术负责人,全栈工程师。从事POS/支付业务架构以及通用Web系统建设工作,主要关注New SQL/ETL/Kubernetes等领域技术发展。以下为演讲实录。前言我大概是从 2015 年开始写下第一行 Go 代码,今天主要给大家分享我这几年以来所积累的一些让我非常难受地方以及感到崩溃的一些 BUG,我希望我的这些...阅读全文

2019-09-21 22:57:41 Go中国
阅读:2143 评论:1