Go语言中文网 为您找到相关结果 309

TODO:字节序的一些理解

TODO:字节序的一些理解 本文是小编对字节序的片面理解,希望对你有帮助哈。字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。1.Little endian:将低序字节存储在起始地址,俗称小端2.Big endian:将高序字节存储在起始地址,俗称大端比如一个0x01020304(左高右低)这个整数,在小端下在内存中的布局如下[04][03][02][01] 注意左边是低地址,而右边是高地址在大端下则是[01][02][03][04] 注意左边是高地址,而右边是低地址。比较大端,小端的排序,采用大端方式存储数据是比较符合人类的思维习惯。因为网上有些人对大端,小端的认识不一样;等下小编会写一段golang的代码来论证小端,大端排序的正确性。网络字节序,是指网络...阅读全文

博文 2017-02-10 15:51:12 OneTODO

一个完整的通过encoding/json信息传递格式,采用http.POST利用进行与服务器通信,并对返回结果进行解析处理的典型案例

package main import ( "fmt" "net/http" "encoding/json" "bytes" ) //需要编码的参数 parameter := map[string]string{"id": 123456} //利用encoding/json包进行编码 jsonstr, err := json.Marshal(parameter) if err != nil { ...阅读全文

golang-MD5

什么是MD5? MD5:为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321. MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 下面是在goalng下如何实现md...阅读全文

Go语言学习之路(五)输入和输出

输出语句 1.输出方法 fmt.Println()//换行输出 fmt.Print()//不换行输出 fmt.Printf() 2.输入方法 数据间隔只能使用回车 数据间隔可以使用空格和回车 fmt输入输出(printf和scanf采用的数据类型格式化) Scan()函数和Scanf()方法关于字符型变量的问题: var a byte fmt.Scan(&a) fmt.Printf("%c",a) Scan接收字符型变量时只接收整型 并通过ASCII码值转换为字符型 var a byte fmt.Scanf("%d",&a) fmt.Printf("%c",a) Scanf %d只能接收整型,不能接收字符型 所以在输入字符型变量时应该使用fmt.Scanf(“%c”,&a) 格式 含义 %%...阅读全文

博文 2018-12-17 00:31:01 weixin_39640179

如何正确理解消息送达成功率?

初接触极光推送的使用者,为了衡量消息推送的质量。经常会纠结到消息的"送达率"这个概念.那么究竟什么是送达率呢?或者如何正确理解消息的送达情况呢?   基本概念   先来看与消息送达相关的几个基本概念:   iOS 目标用户数:匹配推送条件的 iOS 用户的数量。   iOS 推送成功数:推送到 APNS 并被 APNS 成功接收的数量。如果 device token 变更,过期或者与推送环境不匹配则不会成功。   Android 目标用户数:匹配推送的条件的Android 用户数(1个月内与服务器有过连接的用户。如果超过1个月都没有与 JPush server 产生任何连接,那么将不向此用户推送)。   Android 在线推送数:消息推送时,目标用户在线...阅读全文

go源码阅读笔记(math.2)

go源码阅读笔记(math.2) 浮点数与整形数转换math/unsafe.go 在阅读math代码的时候,发现Float64bits以及Float64frombits使用非常多,先查看一下这两个函数是做什么用的 package math import "unsafe" // Float32bits returns the IEEE 754 binary representation of f. func Float32bits(f float32) uint32 { return *(*uint32)(unsafe.Pointer(&f)) } // Float32frombits returns the floating point number corresponding // to ...阅读全文

博文 2016-03-17 00:00:02 qq_15437667

学习记录:go语言中读写文件的小练习

package main import ( "os" "fmt" "bufio" "strings" "strconv" ) func main() { f, _:=os.OpenFile("a.txt", os.O_RDONLY, 0666) defer f.Close() m:=bufio.NewReader(f) char:=0 words:=0 lines:=0 for{ s, ok:=m.ReadString('\n') fmt.Println(s) char+=len(s) words+=len(strings.Fields(s)) lines++ if ok!=nil{ break } } fmt.Println("char:"+toString(char)+",words:"...阅读全文

博文 2014-10-04 19:26:30 明述道长

golang io.ReadFull

buf := make([]byte, 10, 10) file, _ := os.Open("./data.txt") n, err := io.ReadFull(file, buf) if err != nil { fmt.Println(n, err.Error()) } else { fmt.Println(n) } 1. 如果 data.txt 是空,则返回 EOF 错误。 2. 如果 data.txt 少于 10 个字节, 则返回 ErrUnexpectedEOF 错误。并返回读取的字节。 3. 其他情况,正常返回 10 个字节,错误是 nil ...阅读全文

博文 2017-10-25 16:00:05 onebook

golang io需要牢记的几个点

对于Reader比较麻烦需要记住以下: When Read encounters an error or end-of-file condition after successfully reading n > 0 bytes, it returns the number of bytes read. It may return the (non-nil) error from the same call or return the error (and n == 0) from a subsequent call 对于Write比较简单需要记住一下: Write writes len(p) bytes from p to the underlying data stream. It ret...阅读全文

博文 2016-06-08 12:00:00 anjianliang

golang讲解(go语言)标准库分析之io(1)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们开新的标准库io也是继续上一次我们没有讲完的标准库,上一次我们只说了io/ioutil这次我们继续开讲整个io库 (1)func Copy(dst Writer, src Reader) (written int64, err error)这个函数是从一个文件读取拷贝到另外一个文件,一直拷贝到读取文件的EOF,所以不会返回io.EOF错误,参数是写入目标器和读取目标器,返回int64的拷贝字节数和err信息 [php] import ( "fmt" "io" "os" ) func main() { r, _ := os.Open("test.txt") w, _ := os.Crea...阅读全文

博文 2017-02-09 18:39:38 widuu

go语言总结第二章

var和const :变量和常量的声明 var varName type 或者 varName : = value package and import: 导入 func: 用于定义函数和方法 return :用于从函数返回 defer someCode :在函数退出之前执行 go : 用于并行 select 用于选择不同类型的通讯 interface 用于定义接口 struct 用于定义抽象数据类型 break、case、continue、for、fallthrough、else、if、switch、 goto、default 流程控制 chan用于channel通讯 type用于声明自定义类型 map用于声明map类型数据 range用于读取slice、map、channel数据大写,即...阅读全文

博文 2015-07-22 03:00:00 lovlin

抽奖问题分析

普通抽奖问题 问题描述 用户随机抽奖,数据如下: // map中,key代表用户名,value代表成用户下单数 var users map[string]int64 = map[string]int64{ "a": 10, "b": 6, "c": 3, "d": 12, "f": 1, } 思路 随机问题,一般就是通过随机函数从某个范围内随机取出某个数值,则该数值对应的就是中奖用户 在这里,如果我们能给map中每个元素设置对应的索引,即转化为数组,是不是就可以解决问题了呢? 代码实现 func GetAwardUserName(users map[string]int64) (name string) { size := len(users) awardIndex := rand.Intn...阅读全文

博文 2017-09-05 08:34:52 tomorrowwu

根据输入的日期(年月日)判断是星期几——golang实现

输入日期,如2018年11月07日,输出对应的星期数代码如下: // 历史上的某一天是星期几?未来的某一天是星期几? // 关于这个问题,最著名的计算公式是蔡勒(Zeller)公式。即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 // output: w: 0 - 周日; // 1 - 周一; // 2 - 周二; // 3 - 周三; // 4 - 周四; // 5 - 周五; // 6 - 周六; // 公式中的符号含义如下,w:星期; // c:世纪-1; // y:年(两位数); // m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算) // d:日;...阅读全文

博文 2018-11-08 00:34:44 逍遥子_

gRPC源码/transport/流控

流控 代码 https://github.com/messixukej... 在liangzhiyang/annotate-grpc-go基础上补充了部分注释 发送流控 HTTP/2 流量控制的目标,在流量窗口初始值的约束下,给予接收端以全权,控制当下想要接受的流量大小。 算法: 两端(收发)保有一个流量控制窗口(window)初始值。 发送端每发送一个DATA帧,就把window递减,递减量为这个帧的大小,要是window小于帧大小,那么这个帧就必须被拆分。如果window等于0,就不能发送任何帧。 接收端可以发送 WINDOW_UPDATE帧给发送端,发送端以帧内指定的Window Size Increment作为增量,加到window上。 // 用于发送流控。 将当前可用的quota(...阅读全文

博文 2018-06-10 10:34:37 蓝白狂想

golang-MD5

什么是MD5? MD5:为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321. MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 下面是在goalng下如何实现md...阅读全文

Go学习笔记之基础数据类型

http://studygolang.com/articles/1348 1 整数 在 Go 语言中,如果不加特殊前缀,都是10进制表示,例如:“100” 整数可以直接用指数形式,例如:“1E9”,意思是 1 * (10^9),1 乘以 10 的 9 次方 整数的加减法用 + 和 - 号,乘法用 * 号,除法用 / 号, 得到的商是整数,例如 5 / 2 = 2,而 % 号是求余(取模), 例如 5 % 2 = 1 在 Go语言中,整数类型分为带符号整型和不带符号整型,接着又分别按照长度各自划分为4个类型。 带符号整型 int8 int16 int32 int64 不带符号整型 uint8 uint16 uint32 uint 64 除此之外还有默认类型 int 和 uint,目前都是32位...阅读全文

博文 2016-06-16 13:00:16 kungfupanda

mysql中varbinary、binary、char、varchar异同

binary 与 varbinary 类型和char与varchar类型是相似的,只是他们存储的是二进制数据,也就是说他们是包含字节流而不是字符流,他们有二进制字符的集合和顺序,他们的对比,排序是基于字节的数值进行的 binary与varbinary的最大长度和char与varchar是一样的,只不过他们是定义字节长度,而char和varchar对应的是字符长度。 存储和取出时对尾部空格的处理 char(N)用来存储非二进制字符串,插入时,对于少于N个字符的会自动在尾部加空格,查询时,尾部的空格就会被丢弃掉 vachar(N) 用来存储非二进制字符串,插入时,对于少于N个字符的不填补空格,查询时,尾部的空格不会被丢弃掉 binary(N)存储二进制字符串,插入进,少于N个字节的会自动在尾部加...阅读全文

博文 2018-02-26 11:03:45 zejin2008

Golang的socket编程(一):常用数据结构和函数介绍

工作的原因接触到socket,要使用socket实现一个长连接。之前只在C/C++上用过socket,而且在学校的时候也只是简单的做聊天室小程序,并没有涉及到长连接。突然用到工作项目上,心里还是有点悬的,毕竟网上的资料也不是很多。这里就一步一步记录下学习的过程、遇到的问题以及最重要的——解决问题的方法。 一、说明golang中的socket需要用到net包,里面封装好了很多常用的函数方法以及元素类型。而且无需像C一样要经历socket,bind,listen,accept等等流程,只需要简单的几步流程就能完成,非常方便。 二、IP类型net包中定义的ip类型直接就是byte数组: 1type IP []byte 我们可以使用func parseIP(s string) IP 来把一个ip地址...阅读全文

博文 2018-05-17 09:28:21 马谦的博客

GO语言学习笔记

Go语言的基本数据类型与表达式 基本数据类型 go的数据类型可归纳如下: 基本类型 整型: int、 int8、 int16、 int32、 int64 bool: true、 false 浮点数: float32、 float64 复数: complex64、 complex128 错误(error) 构造类型 数据类型([]) 结构体类型(struct) 指针类型(*) 声明变量 1、整型(int、int8、int16、int32、int64) var i int = 1 //定义整型变量i并赋值1 var j int j = 1 // 也可以这样定义 k := 1 // 还可以这样定义 给整型赋值时需要注意 var a int // a是通用整数类型 var b int32 // b是...阅读全文

博文 2016-04-29 11:00:04 KetanCheung

golang字符、字符串的那些事儿

通过下边的代码可以看出,r实质是int32,占用4个字节,值是25105;s是string,占用3个字节,值是e68891. 推断r应该是unicode编码的,s是utf8编码的. package main import( "fmt" ) func main() { r := '我' fmt.Printf("%t\n", r) // %!t(int32=25105) s := "我" fmt.Printf("%t, %d %x\n", s, len(s), s) // %!t(string=我) 3 e68891 fmt.Printf("%b\n", int32(r)) // 110001000010001 // 0000 0000 0000 0000 0110 0010 0001 0001...阅读全文

博文 2015-12-16 13:00:02 LvanNeo

Golang学习(14)——Unicode utf8包

Golang学习 - unicode/utf8 包----------------------------// 编码所需的基本数字const ( RuneError = '\uFFFD' // 错误的 Rune 或 Unicode 代理字符 RuneSelf = 0x80 // ASCII 字符范围 MaxRune = '\U0010FFFF' // Unicode 码点的最大值 UTFMax = 4 // 一个字符编码的最大长度)------------------------------------------------------------// 将 r 转换为 UTF-8 编码写入 p 中(p 必须足够长,通常为 4 个字节)// 如果 r 是无效的 Unicode 字符,则写入 ...阅读全文

博文 2017-02-10 10:20:23 1160636144

golang Endian字节序

golang 字节序 简述 最近看TCP通信发现字节序,对此不太了解,故记录下来。 所谓字节序就是字符顺序。在查看资料常用的有2类排序方式: Big-Endian 高位字节放在内存的低地址端,低位字节放在内存的高地址端。 Little-Endian 低位字节放在内存的低地址段,高位字节放在内存的高地址端。 例如 十进制数255用二进制表示为1111 1111,十进制数256用二进制表示则为1 0000 0000那么这个1存放的位置是在前还是后,就是 Big-Endian 和 ittle-Endian 的区别 golang中 在golang 中 encoding/binary 提供了二进制序列化的功能。 提供read 读取编码 和write写编码的等方法 func Read(r io.Read...阅读全文

博文 2018-01-31 16:33:03 johnL

hash.go-几种 hash 函数实现

接口定义 type Hash interface { // 嵌入了 io.Writer 接口 // 向执行中的 hash 加入更多数据 // hash 函数的 Write 方法永远不会返回 error io.Writer // 把当前 hash 追加到 b 的后面 // 不会改变当前 hash 状态 Sum(b []byte) []byte // 重置 hash 到初始化状态 Reset() // 返回 hash 结果返回的字节数 Size() int // BlockSize 返回 hash 的基础块大小 // 为了提高效率 // Write 方法传入的字节数最好是 blick size 的倍数 BlockSize() int } // 结果为 32bit hash 函数接口 type H...阅读全文

博文 2018-11-07 11:34:43 Y_xx

TODO:字节的那点事Go篇

TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的。 fmt.Println(len(“dsd好”)) 输出的长度是6 fmt.Println(len(string(rune(‘好’)))) 输出的长度是3 fmt.Println(len([]rune(“好的2s”))) 输出的长度是4 所以用string存储unicode的话,如果有中文(中文是由3个字节组成 ),按下标是访问不到的,因为你只能得到一个byte。 要想访问中文的话,还是要用rune切片,这样就能按下标访问。 UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可...阅读全文

博文 2016-12-05 15:00:03 OneTODO

GoLang Go 基础类型

Boolean 布尔值的类型为bool,true或false,默认false var isActive bool // 全局变量声明 var enabled, disabled = true, false // 忽略类型的声明 func test() { var available bool // 一般声明 valid := false // 简短声明 available = true // 赋值操作 } 数值类型 整数类型 整数类型有无符号和带符号两种。 Go同时支持int和uint,这两种类型的长度相同,但具体长度取决于不同编译器的实现。Go里面也有直接定义好位数的类型:rune, int8, int16, int32, int64和byte, uint8, uint16, uint32...阅读全文

Golang代码搜集-基于RSA的公钥加密私钥解密-私钥签名公钥验证

2018年03月02日 22:29:54 阅读数:465 首先由genkey.go生成公钥和私文件,在rsa.go里使用生成的公钥和私钥进行加密和解密 //文件 genkey.go //生成公钥和私钥 pem文件 ```go package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "flag" "log" "os" ) func main() { var bits int flag.IntVar(&bits, "b", 1024, "秘钥长度,默认为1024") if err := GenRsaKey(bits); err != nil { log.Fatal("秘钥文件生成失败") } lo...阅读全文

博文 2018-08-18 19:15:40 yuluxs

老虞学GoLang笔记-字符串

在所有编程语言中都涉及到大量的字符串操作,可见熟悉对字符串的操作是何等重要。 Go中的字符串和C#中的一样,字符串内容在初始化后不可修改。 需要注意的是在Go中字符串是有UTF-8编码的,请注意保存文件时将文件编码格式改成UTF-8(特别是在windows下)。 初始化 var str string //声明一个字符串 str = "laoYu" //赋值 ch :=str[0] //获取第一个字符 len :=len(str) //字符串的长度,len是内置函数 ,len=5 字符串操作 编码过程中避免不了中文字符,那我们该如何提取一个中文呢?首先我们要知道string[index]获取的是字符byte,就无法像C#中"老虞"[0]来取到‘老’,在Go中需要将字符串转换成rune数组,ru...阅读全文

博文 2015-07-21 15:00:02 Gopher老虞

fmt包的Println,Printf和Sprintf的区别

fmt包实现了格式化的I/O,其功能类似于C的printf和scanf。这是官网给出的解释。 **Println:** 1. 用默认的类型格式显示方式将传入的参数写入到标准输出里面(即在终端中有显示), 2. 多个传入参数之间使用空格分隔, 3. 在显示的最后追加换行符, 4. 返回值为 写入标准输出的字节数和写入过程中遇到的问题。 **Printf:** 1. 用传入的格式化规则符将传入的变量写入到标准输出里面(即在终端中有显示), 2. 返回值为 写入标准输出的字节数和写入过程中遇到的问题。 **Sprintf:** 1. 用传入的格式化规则符将传入的变量格式化,(终端中不会有显示) 2. 返回为 格式化后的字符串。 ``` go testStr := []byte("test str"...阅读全文

博文 2018-11-08 09:49:02 lijingtian

go语言的字符和字符串

Go语言中的字符 在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。 下面用一个简单的程序来演示字符类型: package main import ( "fmt" "reflect" ) func main() { r := '我' fmt.Printf("%q的类型为:%t 二进制为:%b\n", r, r, r) rType := reflect.TypeOf(r).Kind() fmt.Printf("r的实际类型为:%s\n", rType) } 程序输出: '我'的类型为:%!t(int32=25105) 二进制为:110001000010001 r的实际类型为:int32 那我产生一个问题:Unicode字符的长度是多少?这个问题的问法有没有问题?其...阅读全文

博文 2016-10-26 14:00:01 davidsu33

golang生成JSON及解析JSON

一、JSON解析到结构体 在介绍这部分之前先简要介绍一下Json语法 JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。 数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组 1.JSON名称/值对 "name" : "value" 2.JSON值 可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true 或 false) 数组(在中括号中) 对象(在大括号中) null JSON数据 JSON 数字可以是整型或者浮点型 { "age":30 } JSON对象 JSON 对象在大括号({})中书写: 对象可以包含多个名称/值对: { "name": "runoob", "alexa": 10000, ...阅读全文

博文 2019-02-24 17:34:42 不屈真实

《Golang 入门系列四》golang的基本数据类型

前言:在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 一、数字类型 有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的值域是从-2^{n-1}−2​n−1​​到2^{n-1}-12​n−1​​−1。无符号整数的所有bit位都用于表示非负数,值域是0到2^n-12​n​​−1。例如,int8类型整数的值域是从-128到127,而uint8类型整数的值域是从0到255。 1.1 整型 序号 类型和描述 1 uint8: 无符号 8 位整型 (0 到 255) 2 uint16: 无符号 16 位整型 (0 到 65535) 3 ui...阅读全文

golang中encoding/binary包

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

博文 2018-12-12 00:34:46 laijh

golang 中的 io包

一些抽象化的接口 读相关 名称 作用 备注 Read 读接口 1 ReadCloser 读接口(包含 Close接口) 2 ReadSeeker 从哪里读到哪里 3 ReaderAt 从一定距离开始读 4 ReaderFrom 包含 ReadForm方法,读到Eof 或 error停止。返回读到的字节数 5 写相关 名称 作用 备注 Writer 读接口 1 WriteCloser 读接口(包含 Close接口) 2 WriteSeeker 从哪里读到哪里 3 WriterAt 从一定距离开始读 4 WriterTo 包含 WriterTo 方法,读到Eof 或 error停止。返回写入的字节数 几个函数方法 1. Copy (内部实现了 ReaderFrom 和 WriterTo 接口) ...阅读全文

博文 2017-07-09 06:03:50 中柠檬

Go语言核心之美 2.1-整数

第二章 序 在计算机底层,一切都是比特位。然而计算机一般操作的都是固定大小的值,称之为字(word)。字会被解释为整数、浮点数、比特位数组、内存地址等,这些字又可以进一步聚合成数据包(packet)、像素点、作品集、诗歌或者其它任何对象。Go语言提供了多样化的数据组织方式,这些数据类型既有硬件层面的兼容性,又能让程序员方便的组合成更复杂的数据类型。 Go语言的数据类型分为四大类:基本类型,复合类型,引用类型及接口类型。本章将介绍基本类型:数字,字符串,布尔值。 一、整数 Go语言的数值数据类型包括以下几种:整数,浮点数,复数,每一种都包含了大小(size)不同的数值类型,例如有符号整数包含int8,int16,int32,int64,int。每一种数值类型都会决定值的大小和符号(正负),我们...阅读全文

golang bytes.buffer详解

Buffer 介绍 Buffer 是 bytes 包中的一个 type Buffer struct{…} A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer ready to use. (是一个变长的 buffer,具有 Read 和Write 方法。 Buffer 的 零值 是一个 空的 buffer,但是可以使用) Buffer 就像一个集装箱容器,可以存东西,取东西(存取数据) 创建缓冲器 func main() { buf1 := bytes.NewBufferString("hello") buf2...阅读全文

博文 2019-01-11 21:34:44 豆瓣奶茶

Go语言学习笔记6

4.Go语言数据的使用 4.1赋值语句 如果值 x 可以被赋给类型为 T 的变量,那么它们至少需要满足以下条件中的一个赋值规则: 如果值 x 的类型是 T , 那么 x 可以被赋给 T 类型的变量。 如果值 x 的类型是 V,那么 V 和 T 应该具有相同的潜在类型,并且它们之中至少有一个是未命名的类型。未命名的类型是指未被署名的数据类型。例如,字面量: struct { a int b string }{0,"string"} 所代表的值的类型是 struct { a int b string } 而这个类型就是一个未命名的类型。它的潜在类型与结构体类型 type Anonym struct { a int b string } 相同。因此,上面的字面量可以被赋给类型为 Anonym 的变...阅读全文

博文 2016-08-17 18:00:05 u012855229

Golang 格式输出符号

%d int变量 %x, %o, %b 分别为16进制,8进制,2进制形式的int %f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00 %t 布尔变量:true 或 false %c rune (Unicode码点),Go语言里特有的Unicode字符类型 %s string %q 带双引号的字符串 "abc" 或 带单引号的 rune 'c' %v 会将任意变量以易读的形式打印出来 %T 打印变量的类型 %% 字符型百分比标志(%符号本身,没有其他操作...阅读全文

博文 2019-05-05 04:31:50 zhengzizhi

Go语言学习笔记3

3.Go语言数据类型 其实前面已经涉及到了数据类型的一些知识点。本篇将仔细地讲讲Go语言的数据类型。 3.1 基本数据类型 名称 宽度(字节) 零值 说明 bool 1 false 布尔类型,真用常量true表示,假用常量false表示 byte 1 0 字节类型,可看作uint8的别名类型 rune 4 0 rune类型,专门存储Unicode编码,可看作uint32的别名类型 int/uint - 0 有符号整数类型/无符号整数类型,宽度与平台相关 int8/uint8 1 0 由8位二进制数表示的有符号整数类型/无符号整数类型 int16/uint16 2 0 由16位二进制数表示的有符号整数类型/无符号整数类型 int32/uint32 4 0 由32位二进制数表示的有符号整数类型/...阅读全文

博文 2016-07-01 17:00:01 u012855229

Golang学习(5)——strconv包

Golang学习 - strconv 包--------------------// 将布尔值转换为字符串 true 或 falsefunc FormatBool(b bool) string// 将字符串转换为布尔值// 它接受真值:1, t, T, TRUE, true, True// 它接受假值:0, f, F, FALSE, false, False// 其它任何值都返回一个错误。func ParseBool(str string) (bool, error)--------------------// ErrRange 表示值超出范围var ErrRange = errors.New("value out of range")// ErrSyntax 表示语法不正确var ErrS...阅读全文

go 语言http请求案列。

go 语言请求,小案列get与post: package main import( "fmt" "net/http" "io/ioutil" "strings" "os" "io" ) func main() { httpGet() content:=httpPostParmas() savaFile(content) } func httpGet() { resp,err :=http.Get("http://www.baidu.com") if err!=nil { fmt.Println("已经初始化") } defer resp.Body.Close() body,err:=ioutil.ReadAll(resp.Body) if err!=nil { fmt.Println("从i...阅读全文

博文 2016-11-13 14:00:02 qq_26337701

Golang学习 - strconv 包

// 将布尔值转换为字符串 true 或 false func FormatBool(b bool) string // 将字符串转换为布尔值 // 它接受真值:1, t, T, TRUE, true, True // 它接受假值:0, f, F, FALSE, false, False // 其它任何值都返回一个错误。 func ParseBool(str string) (bool, error) ------------------------------ // ErrRange 表示值超出范围 var ErrRange = errors.New("value out of range") // ErrSyntax 表示语法不正确 var ErrSyntax = errors.New(...阅读全文

Golang学习(4)——strings包

Golang学习 - strings 包--------------------strings 包与 bytes 包中的函数用法基本一样,不再赘述。 只对 Replacer 进行说明。// 转换func ToUpper(s string) stringfunc ToLower(s string) stringfunc ToTitle(s string) stringfunc ToUpperSpecial(_case unicode.SpecialCase, s string) stringfunc ToLowerSpecial(_case unicode.SpecialCase, s string) stringfunc ToTitleSpecial(_case unicode.Specia...阅读全文

博文 2017-02-09 18:26:14 1160636144

浅析 Go 语言的数字常量

## 概述 Go 语言的常量的实现方法是 Go 的一个亮点。在 Go 的语言规范中的定义[常量规则](http://golang.org/ref/spec#Constants) 是 Go 独有的。 它们在编译器级别提供 Go 所需要的灵活性,使我们编写的代码可读且直观,同时仍保持类型安全。 本文将会探讨”什么是数字常量“、”它们在最简单的情况下时有怎样的行为“以及”怎样去探讨它们才是最好的“这几个方面,其中会有很多吓人的细节问题、名词和概念,所以本文将会放慢速度慢慢的剖析之。 如果你准备好瞧瞧数字常量的底下有些啥,那就跟我撸起袖子开始干吧: ## 无类型和有类型的数字常量 在 Go 语言中,你既可以在声明常量时指定类型,也可以不指定类型。当我们在代码中声明一个字面量时,我们其实就声明了一个匿...阅读全文

博文 2018-11-07 09:41:50 Alex-liutao

Golang基本结构之练习(day2)

笔记: 1. 任何一个代码文件隶属于一个包 2. import 关键字,引用其他包: import(“fmt”) import(“os”) 通常习惯写成: import ( “fmt” “os” ) 3. golang可执行程序,package main, 并且有且只有一个main入口函数 4. 包中函数调用: a. 同一个包中函数,直接调用 b. 不同包中函数,通过包名+点+ 函数名进行调用 5. 包访问控制规则: 大写意味着这个函数/变量是可导出的 小写意味着这个函数/变量是私有的, 包外部不能访问 练习: package main /* 算出结果是: 0+10=10 1+9=10 2+8=10 3+7=10 4+6=10 5+5=10 6+4=10 7+3=10 8+2=10 9+1=...阅读全文

博文 2017-12-14 12:00:00 pyyu

理解Golang的Time结构

在golang中创建并打印一个时间对象,会看到如下输出 2018-10-26 14:15:50.306558969 +0800 CST m=+0.000401093 前面表示的意义好理解,分别是年月日和时间时区,最后的m=+xxxx这部分代表什么呢? Monotonic Clocks 和 Wall Clocks 根据golang的time包的文档可以知道,golang的time结构中存储了两种时钟,一种是Wall Clocks,一种是Monotonic Clocks。 Wall Clocks,顾名思义,表示墙上挂的钟,在这里表示我们平时理解的时间,存储的形式是自 1970 年 1 月 1 日 0 时 0 分 0 秒以来的时间戳,当系统和授时服务器进行校准时间时间操作时,有可能造成这一秒是20...阅读全文

博文 2018-10-26 19:34:40 simpleapples

golang讲解(go语言)标准库分析之os(7)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; Golang标准库 今天我们继续讲golang标准库的os包,依然是没有废话直接来 (1)(f *File).Name()这个函数是返回文件的名称,函数原型func (f *File) Name() string要文件的指针操作,返回字符串,感觉比较鸡助的方法底层实现 [php] func (f *File) Name() string { return f.name } import ( "fmt" "os" ) func main() { f, _ := os.Open("1.go") fmt.Println(f.Name()) //输出1.go } [/php] (2)(f *File)...阅读全文

博文 2017-02-09 18:38:58 widuu

golang 指针类型引起的神奇 bug

下面是使用的结构体接口抽象定义,其实就是将结构体存进一个 map里。由于是读写都比较频繁,我加了读写锁。 // add progress listener. func (upload *UploaderGateway) AddProgress(key string, v ProgressListener) { upload.mutex.Lock() defer upload.mutex.Unlock() upload.ProgressMap[key] = v } //get progress listener. func (upload *UploaderGateway) GetProgress(key string) (v ProgressListener, err error) { up...阅读全文

博文 2019-05-26 03:34:41 kenuo

Golang Printf、Sprintf 、Fprintf 格式化

https://www.cnblogs.com/dfsxh/p/10316601.html /* %v 输出结构体 {10 30} %+v 输出结构体显示字段名 {one:10 tow:30} %#v 输出结构体源代码片段 main.Point{one:10, tow:30} %T 输出值的类型 main.Point %t 输出格式化布尔值 true %d输出标准的十进制格式化 100 %b输出标准的二进制格式化 99 对应 1100011 %c输出定整数的对应字符 99 对应 c %x输出十六进制编码 99 对应 63 %f输出十进制格式化 99 对应 63 %e输出科学技科学记数法表示形式 123400000.0 对应 1.234000e+08 %E输出科学技科学记数法表示形式 1234...阅读全文

博文 2019-06-18 14:02:47 w85278161

Go语言学习笔记3

3.Go语言数据类型 其实前面已经涉及到了数据类型的一些知识点。本篇将仔细地讲讲Go语言的数据类型。 3.1 基本数据类型 名称 宽度(字节) 零值 说明 bool 1 false 布尔类型,真用常量true表示,假用常量false表示 byte 1 0 字节类型,可看作uint8的别名类型 rune 4 0 rune类型,专门存储Unicode编码,可看作uint32的别名类型 int/uint - 0 有符号整数类型/无符号整数类型,宽度与平台相关 int8/uint8 1 0 由8位二进制数表示的有符号整数类型/无符号整数类型 int16/uint16 2 0 由16位二进制数表示的有符号整数类型/无符号整数类型 int32/uint32 4 0 由32位二进制数表示的有符号整数类型/...阅读全文

博文 2016-09-02 15:00:05 u012855229