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

go语言学习笔记(三)

分享几门我自学go语言的教程,这几门课可以说是go语言学习的新华字典了!Go语言从入门到实战——简明高效的Go语言实战指南 Google资深工程师深度讲解Go语言Go实战仿百度云盘 实现企业级分布式云存储系统Go语言实战流媒体视频网站Go语言开发分布式任务调度 轻松搞定高性能Crontab高并发&高性能 Go语言开发企业级抽奖项目GO从0到1实战微服务版抢红包系统【区块链实战】Golang公链项目实战go语言教程零基础入门到精通小白的福音:20小时快速入门Go语言一、go语言浮点数表示 go语言浮点数类型有两个,即float32和float64。存储这两个类型的值的空间分别需要4个字节和8个字节。 浮点数类型的值一般由整数部分、小数点“.”和小数部分组成。其中,整数部分和小数部分均由10进制...阅读全文

博文 2019-08-10 18:08:32 zhangaijia

golang[40]-区块链-wif倒推出私钥

wif倒推出私钥123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150...阅读全文

博文 2018-12-14 00:35:43 jonson_jackson

Golang学习 - bytes 包

对于传入 []byte 的函数,都不会修改传入的参数,返回值要么是参数的副本,要么是参数的切片。 // 转换 // 将 s 中的所有字符修改为大写(小写、标题)格式返回。 func ToUpper(s []byte) []byte func ToLower(s []byte) []byte func ToTitle(s []byte) []byte // 使用指定的映射表将 s 中的所有字符修改为大写(小写、标题)格式返回。 func ToUpperSpecial(_case unicode.SpecialCase, s []byte) []byte func ToLowerSpecial(_case unicode.SpecialCase, s []byte) []byte func To...阅读全文

博文 2019-04-19 18:34:42 佛心看世界

Golang 实现访问Easyswoole的rpc服务

package main import ( "encoding/binary" "net" ) func main() { var tcpAddr *net.TCPAddr tcpAddr,_ = net.ResolveTCPAddr("tcp","127.0.0.1:9600") conn,_ := net.DialTCP("tcp",nil,tcpAddr) defer conn.Close() sendEasyswooleMsg(conn) } func sendEasyswooleMsg(conn *net.TCPConn) { var sendData []byte data := `{"command":1,"request":{"serviceName":"UserServic...阅读全文

博文 2019-10-08 11:33:39 aside section ._1OhGeD

golang[39]-区块链-产生wif私钥

压缩公钥公钥一般来说是椭圆曲线上的x,y坐标拼接在一起的。压缩的公钥其实就是x的坐标。WIF 私钥产生12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182package mainimport ("encoding/hex""crypto/sha256""math/big""fmt")//base58编码var b58Alphabet = []byte("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghij...阅读全文

博文 2018-12-14 00:35:43 jonson_jackson

AC GO GO GO!!!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/code12hour/article/details/46809457 新学期开始了,要继续哦 小紫书上的一道很烦的题:Uva 11809 Flloating-Point Numbers 要做的: CDOJ 1139 菲波拉契数制升级版 CDOJ 1301 Find the Stuff 未做的: HDU 5179 HDU 4788 ZOJ 3542 搜索: POJ 1606 HDU 5094 HDU 5077 HDU 4394 DP: POJ 3254 Corn Fields POJ 1185 炮兵阵地 CF 165E Compatible Numbers HDU 5045 Contes...阅读全文

博文 2018-08-27 14:31:05 code12hour

go - bufio 缓冲读写详解级实例

go在提供了io包的同时也提供了bufio包来实现有缓存的读写操作以提高读写性能。为什么bufio性能比io高呢? 缓冲读写 缓冲读 // 默认缓冲区大小 const ( defaultBufSize = 4096 ) // 最小缓冲区大小 自定义小于次阈值将会被覆盖 const minReadBufferSize = 16 // 使用默认缓冲区大小 bufio.NewReader(rd io.Reader) // 使用自定义缓冲区大小 bufio.NewReaderSize(rd io.Reader, size int) 缓冲读的大致过程如下,设定好缓冲区大小buf_size后,读取的字节数为rn,缓冲的字节数为bn: 如果缓冲区为空,且 rn >= buf_size,则直接从文件读取,不...阅读全文

博文 2019-06-15 17:32:39 big_cat

golang的scan标准库(fmt.scan的使用)

载自https://www.cnblogs.com/golove/p/5888441.html标准库 - fmt/scan.go 解读 // Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // go/src/fmt/scan.go // version 1.7 // 格式化输入输出的用法请参考:http://www.cnblogs.com/golove/p/3284304.html package fmt import ( "er...阅读全文

博文 2018-10-08 17:35:50 ck_god

Golang io reader writer

一、《GO语言实战》P194 类 UNIX 的操作系统如此伟大的一个原因是,一个程序的输出可以是另一个程序的输入这一理念。依照这个哲学,这类操作系统创建了一系列的简单程序,每个程序只做一件事,并把这件事做得非常好。之后,将这些程序组合在一起,可以创建一些脚本做一些很惊艳的事情。这些程序使用 stdin 和 stdout 设备作为通道,在进程之间传递数据。 同样的理念扩展到了标准库的 io 包,而且提供的功能很神奇。这个包可以以流的方式高效处理数据,而不用考虑数据是什么,数据来自哪里,以及数据要发送到哪里的问题。与 stdout和 stdin 对应,这个包含有 io.Writer 和 io.Reader 两个接口。所有实现了这两个接口的类型的值,都可以使用 io 包提供的所有功能,也可以用于其...阅读全文

博文 2019-03-12 20:34:42 懒皮

Golang学习 - io 包

先说一下接口,Go 语言中的接口很简单,在 Go 语言的 io 包中有这样一个函数: func ReadFull(r Reader, buf []byte) (n int, err error) 这个函数可以把对象 r 中的数据读出来,然后存入一个缓冲区 buf 中,以便其它代码可以处理 buf 中的数据。 这里有个问题,ReadFull 函数究竟可以读取哪些对象的数据?可以读文件中的数据吗?可以读网络中的数据吗?可以读数据库中的数据吗?可以读磁盘中的扇区吗?可以读内存中的数据吗? 答案是 ReadFull 可以读取任何对象的数据,但是有个前提,就是这个对象必须符合 Reader 的标准。 Reader 的标准是什么呢?下面是 Reader 的定义: type Reader interfac...阅读全文

博文 2019-04-19 18:34:41 佛心看世界

Go36-38,39-bytes包

基本操作 bytes包和strings包非常相似,单从它们提供的函数的数量和功能上看,差别微乎其微。 strings包主要是面向Unicode字符和经过UTF-8编码的字符串,而bytes包主要是面对字节和字节切片。 bytes.Buffer类型 Buffer类型的用途主要是作为字节序列的缓冲区。 bytes.Buffer是开箱即用的。可以进行拼接、截断其中的字节序列,以各种形式导出其中的内容,还可以顺序的读取其中的子序列。所以是集读、写功能与一身的数据类型,这些也是作为缓冲区应该拥有的功能。 在内部,bytes.Buffer类型使用字节切片(bootstrap字段)作为内容容器。还有一个int类型(off字段)作为已读字节的计数器,简称为已读计数。不过这里的已读计数是不无获取也无法计算得到...阅读全文

博文 2019-02-03 10:35:13 骑士救兵

Golang学习笔记之字符串(string)

在 Go 中字符串是 byte 数组。可以通过将内容放在双引号 "" 之间的方式来创建一个字符串。字符串是不可变值类型,内部⽤指针指向 UTF-8 字节数组。 • 默认值是空字符串 ""。 • ⽤索引号访问某字节,如 s[i]。 • 不能⽤序号获取字节元素指针, &s[i] ⾮法。 • 不可变类型,⽆法修改字节数组。 • 字节数组尾部不包含 NULL。 runtime.h struct String { byte* str; intgo len; }; (1)使⽤索引号访问字符 。 s := "abc" fmt.Println(s[0]) //97 fmt.Printf("%c\n", s[0]) //a fmt.Println(s[0] == '\x61', s[1] == 'b', s[...阅读全文

博文 2018-12-08 11:34:46 学生黄哲

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-28 15:34:49 小马哥_Magical

Golang字节对齐

最近在做一些性能优化的工作,其中有个结构体占用的空间比较大,而且在内存中的数量又特别多,就在想有没有优化的空间,想起了 c 语言里面的字节对齐,通过简单地调整一下字段的顺序,就能省出不少内存,这个思路在 golang 里面同样适用 基本数据大小 在这之前先来看下 golang 里面基本的类型所占数据的大小 So(unsafe.Sizeof(true), ShouldEqual, 1) So(unsafe.Sizeof(int8(0)), ShouldEqual, 1) So(unsafe.Sizeof(int16(0)), ShouldEqual, 2) So(unsafe.Sizeof(int32(0)), ShouldEqual, 4) So(unsafe.Sizeof(int64(0)...阅读全文

博文 2018-11-27 18:34:42 Chole121

关于写文章的反思

看了一下我之前写的文章,有多少是水篇数?复制别人的列子有多少? 自已真正有心得的,又写了多少? 我过了需要用数量来证明自己的时候了 从今天开始,删掉那些水文,质量不高的,尽可能完善。 我可能写不了多好,但是我要求我写的东西能拿得出手。 补: session及JWT及Oath的使用。 MySql的sql语句优化。 Git遇到的问题及解决方案。 Golang的使用及避坑。 用心点...阅读全文

博文 2018-07-27 09:34:48 送你一碗大麦茶

go语言对称加密算法

package main import ( "bytes" "crypto/aes" "crypto/cipher" "crypto/des" ) // des的CBC加密 // 编写填充函数, 如果最后一个分组字节数不够, 填充 // ......字节数刚好合适, 添加一个新的分组 // 填充个的字节的值 == 缺少的字节的数 func paddingLastGroup(plainText []byte, bloclSize int) []byte { // 1. 求出最后一个组中剩余的字节数 28 % 8 = 3...4 32 % 8 = 4 ...0 padNum := bloclSize - len(plainText) % bloclSize // 2. 创建新的切片, 长度 ==...阅读全文

博文 2019-10-16 10:02:43 吾爱美人

老虞学GoLang笔记-变量声明与初始化

开发十年,就只剩下这套Java开发体系了 >>> 变量声明 官方DOC: http://golang.org//spec#Variable_declarations Go中使用全新的关键字var来声明变量。var我们并不陌生,在Javascript 和C#中均有出现。不同的是Go和C#中变量属于强类型,在声明变量后就不允许改变其数据类型。 声明变量有多种形态: var a int //声明一个int类型的变量 var b struct { //声明一个结构体 name string } var a = 8 //声明变量的同时赋值,编译器自动推导其数据类型 var a int = 8 //声明变量的同时赋值 var { //批量声明变量,简洁 a int b string } 变量初始化 变量...阅读全文

golang语言渐入佳境[28]-time包核心方法

time包核心方法12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915...阅读全文

博文 2018-12-12 00:35:17 jonson_jackson

Golang学习 - unicode/utf8 包

// 编码所需的基本数字 const ( RuneError = '\uFFFD' // 错误的 Rune 或 Unicode 代理字符 RuneSelf = 0x80 // ASCII 字符范围 MaxRune = '\U0010FFFF' // Unicode 码点的最大值 UTFMax = 4 // 一个字符编码的最大长度 ) // 将 r 转换为 UTF-8 编码写入 p 中(p 必须足够长,通常为 4 个字节) // 如果 r 是无效的 Unicode 字符,则写入 RuneError // 返回写入的字节数 func EncodeRune(p []byte, r rune) int // 解码 p 中的第一个字符,返回解码后的字符和 p 中被解码的字节数 // 如果 p 为空,则...阅读全文

博文 2019-04-19 18:34:40 佛心看世界

Go基础系列:简单数据类型

每一个变量都有数据类型,Go中的数据类型有: 简单数据类型:int、float、complex、bool和string 数据结构或组合(composite):struct、array、slice、map和channel 接口(interface) 当声明变量的时候,会做默认的赋0初始化。每种数据类型的默认赋0初始化的0值不同,例如int类型的0值为数值0,float的0值为0.0,string类型的0值为空"",bool类型的0值为false,数据结构的0值为nil,struct的0值为字段全部赋0。 其实函数也有类型,不过一般称之为返回类型。例如,下面的函数foo的返回类型是int: func foo() int { ...CODE... return INT_TYPE_VALUE } 函...阅读全文

博文 2018-11-23 09:10:24 f-ck-need-u

go语言渐入佳境[5]-printf格式化打印

golang输出的格式化打印1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package mainimport "fmt"func main(){ //通用的格式 str:="jonson" fmt.Printf("%T,%v\n",str,str) //布尔 var booeanl = true fmt.Printf("%T,%t\n",booeanl,booeanl) //特殊字符 fmt.Printf("%%\n") fmt.Printf("\"\n") fmt.Printf("\\\n") //整数 fmt.Printf("%T,%d\n",123,...阅读全文

博文 2018-12-04 00:35:13 jonson_jackson

golang中encoding/base32包

1、golang中base32包是什么? 2、base32给我们开发者提供了什么?以及用法? 3、编码与解码各有哪几种操作? 一、golang中base32包是什么? 这个包实现了 RFC 4648 定义的 base32 编码。 二、base32给我们开发者提供了什么? 变量: RFC 4648 定义的标准 base32 编码。 var StdEncoding = NewEncoding(encodeStd) RFC 4648 里定义的"Extended Hex Alphabet",一般用于DNS var HexEncoding = NewEncoding(encodeHex) 函数: 1)func NewDecoder(enc *Encoding, r io.Reader) io.Read...阅读全文

博文 2018-12-11 17:34:49 laijh

Float的基本介绍

关于浮点数,为什么它生来就可能存在误差?带着好奇查阅了一些介绍,然后做了简单汇总。这只是一段知识的开始,后续还会继续完善。—— 荡荡上帝,下民之辟。疾威上帝,其命多辟。天生烝民,其命匪谌。靡不有初,鲜克有终。 Floating-point represent 浮点数在计算机中是如何表示的?因为它有小数点,那么小数点后面的数,该如何用二进制来表示呢?我们都知道,浮点数本身就存在误差,在工作中,你所使用的float都是一个近似数。这又是什么原因导致的呢? 1. Fixed-point fixed-point 是将bit位拆分成固定的两部分:小数点前的部分和小数点后的部分。拿32 bit的fixed-point表示举例,可以将其中的24 bit用于表示整数部分,剩余的8 bit表示小数部分。 假如...阅读全文

golang-101-hacks(10)——String

注:本文是对golang-101-hacks中文翻译。 在Go中string是由不可变的字节数组构成的。一旦赋值,就不能修改字符串的值。例如 In Go, string is an immutable array of bytes. So if created, we can't change its value. E.g.: package main func main() { s := "Hello" s[0] = 'h' } 编译结果会提示错误: The compiler will complain: cannot assign to s[0] 对字符串的修改可以将其转换为“byte”数组。但是实际上您并没有对原始字符串进行修改操作,改变的只是一个原始字符串的副本。 To modify...阅读全文

博文 2019-05-30 23:34:40 羊羽share

go基本类型使用细节

整型的使用细节 Golang 各整数类型分:有符号和无符号 ,int uint的大小和系统有关。 Golang 的整型默认声明为int型 var n1 = 100 fmt.Printf('n1的数据类型%T',n1) 如何在程序查看某个变量的字节大小和数据类型(使用较多) var n2 int64 = 10 fmt.Printf('n2的 数据类型 %T n2占用的字节数是 %d',n2,unsaft.Sizeof(n2)) 浮点型使用细节 Golang 浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影响。 Golang 的浮点型默认声明为float64 类型。 浮点型常量有两种表示形式 十进制数形式:如:5.12 .512 (必须有小数点) 科学计数法形式:如:5.1234e2...阅读全文

博文 2019-01-03 18:34:44 StevenQin

Golang基础之格式化输出符号详解

fmt包的格式化输出输入 格式 含义 %% 一个%字面量 %b 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数 %c 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符 %d 一个十进制数值(基数为10) %e 以科学记数法e表示的浮点数或者复数值 %E 以科学记数法E表示的浮点数或者复数值 %f 以标准记数法表示的浮点数或者复数值 %g 以%e或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 %G 以%E或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 %o 一个以八进制表示的数字(基数为8) %p 以十六进制(基数为16)表示的一个值的地址,前缀为0x,字母使用小写的a-f表示 %q 使用Go语法以及必须时使用转义,...阅读全文

博文 2019-06-29 01:32:40 Holechain

从 io.Reader 中读数据

目录 [−] io.Reader.Readio.Copyioutil.ReadAllio.ReadFullio.ReadAtLeastio.LimitReader参考资料 Go 的标准库提供了多个从 io.Reader 中读取数据的方法 (io、ioutil),本文通过从 net.Conn中读取数据为例,演示各种方法已经应用场景。 使用TCP连接访问某个网站,采用HTTP 1.0的协议,让TCP连接保持短连接,读取完response之后连接会关闭,这样就模拟了io.EOF的错误: 123456conn, err := net.Dial("tcp", "rpcx.site:80")if err != nil { fmt.Println("dial error:", err) return}de...阅读全文

博文 2019-03-02 15:11:15 smallnest

基本类型介绍

Golang 有更明确的数字类型命名,支持 Unicode,支持常用数据结构。 WX20190219-003105@2x.png 支持八进制、 十六进制,以及科学记数法。标准库 math 定义了各数字类型取值范围。 a, b, c, d := 071, 0x1F, 1e9, math.MinInt16 空指针值 nil,而非C/C++ NULL。 基本类型应用: bool:只能存true和false uint uint8 uint16 uint32 uint64 uintptr byte // uint8 的别名 :字符类型 rune // int32 的别名,代表一个Unicode码,用UTF-8 进行编码。 rune 类型在什么时候使用呢? 例如需要遍 历字符串中的字符。可以循环每个字节...阅读全文

博文 2019-02-19 03:35:23 weifansym

go语言的文件简单的操作

Golang读写文件操作 1、读文件 使用golang语言去读取一个文件默认会有多种方式,这里主要介绍以下几种。 使用ioutil直接读取需要引入io/ioutil包,该包默认拥有以下函数供用户调用。 func NopCloser(r io.Reader) io.ReadCloser func ReadAll(r io.Reader) ([]byte, error) func ReadDir(dirname string) ([]os.FileInfo, error) func ReadFile(filename string) ([]byte, error) func TempDir(dir, prefix string) (name string, err error) func Tem...阅读全文

博文 2019-05-30 19:35:11 qq5c9c828bc8d4b

Go语言中多字节字符的处理

## 1 概述 Go语言的字符串是使用 `UTF-8` 编码的。`UTF-8` 是 `Unicode` 的实现方式之一。本文内容包括:`UTF-8` 和 `Unicode` 的关系,Go语言提供的 `unicode` 包和 `unicode/utf8` 包的使用。 ## 2 `UTF-8` 和 `Unicode` 的关系 `Unicode`一种字符集,是国际标谁化组织(ISO)设计的一个包括了地球上所有文化、所有字母和符号 的编码。他们叫它 `Universal Multiple-Octet Coded Character Set`,简称 UCS,也就是 `Unicode`。`Unicode` 为每一个 字符 分配一个唯一的 码点(Code Point),就是一个唯一的值。例如 康 的码点就...阅读全文

博文 2018-10-30 22:05:53 hanzkering

《Go语言四十二章经》第二十八章 unsafe包

《Go语言四十二章经》第二十八章 unsafe包 作者:李骁 ## 28.1 unsafe 包 ```go func Alignof(x ArbitraryType) uintptr func Offsetof(x ArbitraryType) uintptr func Sizeof(x ArbitraryType) uintptr type ArbitraryType int type Pointer *ArbitraryType ``` 这个包中,只提供了3个函数,两个类型。就这么少的量,却有着超级强悍的功能。学过C语言的都可能比较清楚,通过指针,知道变量在内存中占用的字节数,就可以通过指针加偏移量的操作,在地址中,修改,访问变量的值。在Go 语言中,怎么去实现这么疯狂的操作呢?就得靠u...阅读全文

博文 2018-10-12 20:37:14 roteman

unsafe包的应用与字节对齐

以一个例子来说明: //misc.go package misc type S struct { i int32 k int8 j int64 } //main.go func main() { s := new(misc.S) //通过unsafe Pointer给未导出的字段赋值 //因为字节对齐,内存中实际分配 //int32|int8| int64 | //|xxxx|x---|xxxxxxxx| p := (*int32)(unsafe.Pointer(s)) *p = int32(10) // 1.unsafe Pointer和uintptr可以互相转换 // 2.unsafe Pointer和其他类型的指针可以互相转换 // 3.unsafe Pointer不能进行指针运算而u...阅读全文

博文 2019-01-02 18:34:45 Cedrus

GO代码实现判断字符编码格式及编码格式转换(utf-8、gbk)

# 引入 C/C++的实现请看[https://www.jianshu.com/p/a83d398e3606](https://www.jianshu.com/p/a83d398e3606) 最近使用go开发http服务,在使用http进行通信时,发现接收报文中如果包含中文字符(非utf-8编码),直接使用go将二进制格式数据转换成字符串文本会出现乱码的情况。因为golang中的字符编码格式是utf-8,如果是其他类型的编码,例如gbk,那么直接转码后出现乱码也就理所当然了。 --- # GBK编码格式 为了更好地说明GBK的编码方式,首先在这里先说明一下ASCII码,GB2312, GBK, GB18030的兼容性关系: ![各种编码兼容关系.png](https://upload-ima...阅读全文

博文 2019-11-20 16:23:24 bubbleGarden

go语言碎片整理之strconv

strconv包 strconv包实现额基本数据类型与其字符串表示的转换,主要有以下常用函数,Atoi()、Itia()、parse系列、format系列、append系列。 string与int类型转换 这一组函数是我们平时用的最多的。 Atoi() Atio()函数用于将字符串类型的整数转换为int类型,函数签名如下: func Atoi(s string) (i int, err error) 如果传入的字符串参数无法转换为int类型,就会报错。 package main import ( "strconv" "fmt" ) func main(){ s1 := "100" i1, err := strconv.Atoi(s1) if err != nil{ fmt.Println("...阅读全文

博文 2019-06-09 19:33:13 霍帅兵

详解varint编码原理

什么是Varint编码 Varint是一种使用一个或多个字节序列化整数的方法,会把整数编码为变长字节。对于32位整型数据经过Varint编码后需要1~5个字节,小的数字使用1个byte,大的数字使用5个bytes。64位整型数据编码后占用1~10个字节。在实际场景中小数字的使用率远远多于大数字,因此通过Varint编码对于大部分场景都可以起到很好的压缩效果。 编码原理 除了最后一个字节外,varint编码中的每个字节都设置了最高有效位(most significant bit - msb)–msb为1则表明后面的字节还是属于当前数据的,如果是0那么这是当前数据的最后一个字节数据。每个字节的低7位用于以7位为一组存储数字的二进制补码表示,最低有效组在前,或者叫最低有效字节在前。这表明varin...阅读全文

博文 2019-09-26 13:02:38 KevinYan

golang笔记之数据类型

基础数据类型 整形、浮点数、复数、布尔型、常量 复合数据类型 slice、数组、map、struct slices使用注意点: slice与数组的区别为在声明时不需要指定长度。 数组的初始化 var a [4]int slice的初始化 var s []byte Slices hold references to an underlying array, and if you assign one slice to another, both refer to the same array. Slice持有一个潜在的数组,如果你将一个slice赋值给另一个slice,那么两个slice有共同的数组。 重新分片一个slice不会拷贝此slice的内部数组。当只使用数据量比较大的sclice的一...阅读全文

博文 2019-05-05 21:34:58 月下独酌100

Golang之旅3-基本数据类型

基本数据类型 GO语言中的数据类型十分丰富,包含:整型、浮点型、布尔型,还有数组、切片、结构体、函数、map、通道chanel等 go基本数据类型 整型 无符号整型 uint8:,0到255 uint16:,0到65535 uint32 uint64 有符号整型 int8:-128到127 int16:-32768到32767 int32 int64 其他数字类型 uint:32/64位系统上就是uint32/uint64 int:32/64位系统上就是int32/int64 uintptr:无符号整型,用于存放一个指针 注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑int和uint可能在不同平台上的差异。 获取对象的长度的内建len()函数返回的长度可以...阅读全文

博文 2019-10-19 01:32:43 aside section ._1OhGeD

Go基础语法

一、语法结构 Go语言主要有四种类型的声明语句:var, const, type 和 func, 分别对应变量, 常量, 类型和函数实体对象的声明 // 当前程序的包名(一个可执行程序只有一个 main 包) //一般建议package的名称和目录名保持一致 package main // 导入其它包 // 缺少或未使用的包,程序都无法编译通过 import "fmt" // 通过 const 关键字来进行常量的定义 const number1 = 10 // 通过 var 关键字来声明变量 var number2 = 20 // 数组 var number3 = [5]int{1, 3, 5, 7, 9} // 集合 var number4 = map[string]int{ "Age1"...阅读全文

博文 2019-08-01 23:33:11 东666

前期

比如新浪微博发微博的输入框有一个已输入字数的统计,它的规则推测是:汉字和中文标点算 1 个字数,英文和其他符号算 0.5 个字数。不足 1 个字算 1 个。大家可以去微博体验一下计算方式。golang 可以使用正则和 unicode 包的方法判断。以下函数 GetStrLength 返回输入的字符串的字数,每个汉字和中文标点算 1 个字数,英文和其他字符算半个字数,不足 1 个字算 1 个。// GetStrLength 返回输入的字符串的字数,汉字和中文标点算 1 个字数,英文和其他字符 2 个算 1 个字数,不足 1 个算 1个func GetStrLength(str string) float64 {var total float64reg := regexp.MustCompile...阅读全文

博文 2019-01-24 23:34:43 青云老师

Golang 文件读写

Golang 文件读写 读文件 使用ioutil直接读取 package read import ( "fmt" "io/ioutil" "strings" ) // 使用ioutil直接读取 // 读取文件内容,并返回[]byte数据和错误信息。err == nil时,读取成功 func main() { file := "/usr/local/nginx/logs/access.log" if contents, err := ioutil.ReadFile(file); err == nil { //[]byte类型,转换成string类型后会多一行空格,使用strings.Replace替换换行符 result := strings.Replace(string(contents),...阅读全文

博文 2019-08-01 14:32:43 战神悟空

小结

在计算机中最小的信息单位是bit,也就是一个二进制位,8个bit组成一个Byte,也就是字节。一个存储单元(一个地址),可以存储一个字节,也就是8个二进制位。计算机的存储器容量是以字节为最小单位来计算的,对于一个有128个存储单元的存储器,可以说它的容量为128字节。 地址总线,是用来传输数据所在地址的,而32位系统一般有32根地址总线,那么所能传输的最大数据地址就是2^32,这里所指的地址是真实的数据地址,即物理地址。用户在使用计算机时能够访问的最大内存不单是由CPU地址总线的位数决定的,还需要考虑操作系统的实现。实际上用户在使用计算机时,进程访问到的地址都是逻辑地址,并不是真实的物理地址,逻辑地址是由操作系统提供的,并维护了逻辑地址和物理地址的映射。对于32位的windows操作系统,提...阅读全文

博文 2018-12-05 21:34:45 越塔打哭你

ByteEdu 每日新闻(2019-02-28)

ByteEdu 每日新闻(2019-02-28) Golang资料集Go最新资料汇总链接更改 http://www.byteedu.com/forum.php?mod=viewthread&tid=25 字节教育 Go语言初学者的学习资料 http://www.byteedu.com/forum.php?mod=viewthread&tid=191&extra=page%3D1 字节教育平台,活动优惠 如下: 平台注册用户,目前注册仅需99元;2019年5月正式恢复199元 从零开始搭建游戏服务器实战系列 字节教育平台开始更新,在教育平台仅需每月150元就可以免费观看价值数万元的课程 编辑: 三叶 ByteEdu归档: https://weibo.com/ByteEd...阅读全文

博文 2019-02-28 15:34:45 Golang语言社区

Golang包——bytes

byte.Buffer 扩容策略 b.buf = b.buf[:length+need] 新容器的容量 =2* 原有容量 + 所需字节数 内容泄露 内容泄露是指,使用Buffer值的一方通过某种非标准的(或者说非正式的)的方法,得到了本该得不到的内容 性能测试 func BenchmarkStrBuilder(b *testing.B) { str := strings.Builder{} str.WriteString("test") for i := 0; i < b.N; i++ { str.String() } } func BenchmarkByteBuffer(b *testing.B) { byte := bytes.Buffer{} byte.WriteString("tes...阅读全文

博文 2019-04-02 20:34:41 羊羽share

【Golang 基础】Go 语言中的基本类型

Go 语言中的基础类型   在 Go 编程语言中,数据类型用于声明函数和属性。数据类型的出现时为了把数据分成所需要用大数据的时候才需要申请大内存,这样可以充分的列用内存。 数值类型 布尔型 bool 布尔型的值只可以是常量 true 或者 false,默认值为 false。 字符串类型 string 编码统一为 UTF-8 编码标识 Unicode 文本,默认值为空字符串。 整型(默认值为 0) uint8: 无符号 8 位整型(0 ~ 255); uint16:无符号 16 位整型(0 ~ 65535); uint32:无符号 32 位整型(0 ~ 4294967295); uint64:无符号 64 位整型(0 ~ 18446744073709551615); int8:有符号 8 位整...阅读全文

博文 2019-03-16 11:34:41 龙泷VK

Go36-42,43-bufio包

bufio包 这是另一个与I/O操作强相关的代码包。bufio是“buffered I/O”的缩写,这个代码包中的程序实体实现的I/O操作都内置了缓冲区。 主要数据类型 bufio包中的数据类型主要有: Reader Scanner Writer和ReadWriter 与io包中的数据类型类似,这些类型的值也都需要在初始化的时候,包装一个或多个简单I/O接口类型的值。这里的简单I/O接口类型指的就是io包中的那些简单接口。 缓冲区的作用(bufio.Reader) bufio.Reader类型的值内的缓冲区其实就是一个数据存储中介,它介于底层读取器与读取方法及其调用方之间。所谓的底层读取器,就是在初始化此类值的时候传入的io.Reader类型的参数值。 Reader值的读取方法一般会先从其所...阅读全文

博文 2019-02-06 21:35:13 骑士救兵

golang[44]-blockchain-targetHash

比特币目标hash计算过程以之前的bits:181B7B74为例子1234567891011121314151617181920212223242526272829303132333435func main(){ bits,_:= hex.DecodeString("181B7B74") fmt.Printf("%x",CalculateTargetFast(bits))}//18 1B7B74func CalculateTargetFast(bits []byte) []byte{ var result []byte //第一个字节 计算指数 exponent := bits[:1] fmt.Printf("%x\n",exponent) //计算后面3个字节 系数 coeffient:=...阅读全文

博文 2018-12-13 23:35:58 jonson_jackson

Go语言笔记 | 06-基本类型

布尔类型 bool 布尔类型的值只能是常量 true 或者 false。 var b bool = true var c = false 布尔类型和数字 0,1 不能直接转换,必须通过编程实现,if 和 for 语句的条件部分都是布尔类型。 // btoi returns 1 if b is true and 0 if false. func btoi(b bool) int { if b { return 1 } return 0 } 整数类型 golang 提供了多种大小的整数类型,也区分了有符号数和无符号数。 几种确定范围的整数类型: uint8 8-bit 0 to 255 uint16 16-bit 0 to 65535 uint32 32-bit 0 to 4294967295 ...阅读全文

博文 2019-03-01 12:34:42 jianggushi

05Go语言fmt包详解

Go语言fmt包详解 格式化输出函数 func Print(a ...interface{}) (n int, err error) Print采用默认格式将其参数格式化并写入标准输出。如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格,返回写入的字节数和遇到的任何错误。 func Printf(format string, a ...interface{}) (n int, err error) Printf根据format参数生成格式化的字符串并写入标准输出,返回写入的字节数和遇到的任何错误。 func Println(a ...interface{}) (n int, err error) Println采用默认格式将其参数格式化并写入标准输出。总是会在相邻参数的输出之间添加空...阅读全文

关于浮点数精度再各个编程语言需要注意点

浮点数保留N位 (2位),为货币类场景常用选项。比较合理的做法是使用分来存储(int),然后前端在进行转换。否则你就需要关心浮点数自动 四拾伍入。分清自己使用场景选择自己的合适的方法。已知 (mysql(douboule10,2),golang "%.2f",python "%.2f" ) package main import ( "fmt" "math" ) func main() { //四拾伍入了 fmt.Printf("%.2f\n", 1.244444) fmt.Printf("%.2f\n", 1.245444) //自己实现四拾伍入 fmt.Printf("%.2f\n", math.Trunc(1.244444*1e2+)*1e-2) fmt.Printf("%.2f\n"...阅读全文

博文 2019-02-19 16:34:46 数据小菜鸟