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

golang 中fmt用法

fmt 包中的函数和方法 本文转自Golang学习-fmt包: http://www.cnblogs.com/golove/p/3286303.html // format.go ------------------------------------------------------------ // Fprintf 将参数列表 a 填写到格式字符串 format 的占位符中 // 并将填写后的结果写入 w 中,返回写入的字节数 func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) // Printf 将参数列表 a 填写到格式字符串 format 的占位符中 // 并将填写后的结果写入...阅读全文

博文 2014-10-10 15:00:01 chenbaoke

Go 字符串格式化

Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。 package main import "fmt" import "os" type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := point{1, 2} fmt.Printf("%v\n", p) // 如果所格式化的值是一个结构体对象,那么`%+v`的格式化输出 // 将包括结构体的成员名称和值 fmt.Printf("%+v\n", p) // `%#v`格式化输出将输出一个值的Go语法表示方式。 fmt.Printf("%#v\n", p) // 使用`...阅读全文

博文 2014-11-22 12:00:06 fer_ba

golang中io包用法(二)

本文转自https://github.com/polaris1119/The-Golang-Standard-Library-by-Example/blob/master/chapter01/01.1.md,并在此基础上进行修改. io 包为I/O原语提供了基本的接口。它主要包装了这些原语的已有实现。 由于这些接口和原语以不同的实现包装了低级操作,因此除非另行通知,否则客户端不应假定它们对于并行执行是安全的。 在io包中最重要的是两个接口:Reader和Writer接口。本章所提到的各种IO包,都跟这两个接口有关,也就是说,只要实现了这两个接口,它就有了IO的功能。 Reader接口 Reader接口的定义如下: type Reader interface { Read(p []byte) ...阅读全文

博文 2015-01-27 10:00:12 chenbaoke

golang 随机数

package main import "fmt" import "math/rand" func main() { //例如,rand.Intn 返回一个随机的整数 n,0 <= n <= 100。 fmt.Print(rand.Intn(100), ",") fmt.Print(rand.Intn(100)) fmt.Println() //rand.Float64 返回一个64位浮点数 f,0.0 <= f <= 1.0。 fmt.Println(rand.Float64()) //这个技巧可以用来生成其他范围的随机浮点数,例如5.0 <= f <= 10.0 fmt.Print((rand.Float64()*5)+5, ",") fmt.Print((rand.Float64() ...阅读全文

博文 2015-04-21 03:00:00 benlightning

golang 的time包之time

先看看有哪些类型 Time 时间类型,包含了秒和纳秒以及Location Month type Month int 月份.定义了十二个月的常量 Weekday type Weekday int 周,定义了一周的七天 Duration type Duration int64 持续时间.定义了以下持续时间类型.多用于时间的加减 需要传入Duration做为参数的时候.可以直接传入time.Second const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 1000 * Millisecond Minute = 60 * Second Hou...阅读全文

博文 2014-10-04 19:26:08 zhepama

Golang读写文件操作

最近在使用Golang进行文件读写的过程中,遇到几个细节问题导致程序写入数据时有一定脏数据的残留,最后发现是使用os.OpenFile在进行文件操作的时候没有使用正确的flag造成的。因此专门去学习了下Golang中读写文件的几种方式方法,在此记录下一些简单的操作,防止以后遗忘。 读文件 使用golang语言去读取一个文件默认会有多种方式,这里主要介绍以下几种。 使用ioutil直接读取 需要引入io/ioutil包,该包默认拥有以下函数供用户调用。 func NopCloser(r io.Reader) io.ReadCloser func ReadAll(r io.Reader) ([]byte, error) func ReadDir(dirname string) ([]os.Fil...阅读全文

博文 2017-12-24 09:03:15 Andy-xu

使用go语言复制文件

怎样使用go语言将文件复制成另一文件?go语言标准包io里提供一个简单的函数copy实现了这个功能,下面是一个例子。 //////////// package main import ( "fmt" "io" "os" ) func main() { CopyFile(os.Args[1], os.Args[2]) // os.Args[1]为目标文件,os.Args[2]为源文件 fmt.Println("复制完成",) } func CopyFile(dstName, srcName string) (written int64, err error) { src, err := os.Open(srcName) if err != nil { return } defer src.Cl...阅读全文

博文 2014-10-24 12:00:01 学思

Go语言圣经 2.2-浮点数

Go提供了两种size的浮点数,float32和float64。它们的算术规范是由IEEE754国际标准定义,现代CPU都实现了这个规范。 浮点数能够表示的范围可以从很小到很巨大,这个极限值范围可以在math包中获取,math.MaxFloat32表示float32的最大值,大约是3.4e38,math.MaxFloat64大约是1.8e308,两个类型最小的非负值大约是1.4e-45和4.9e-324。 float32大约可以提供小数点后6位的精度,作为对比,float64可以提供小数点后15位的精度。通常情况应该优先选择float64,因此float32的精确度较低,在累积计算时误差扩散很快,而且float32能精确表达的最小正整数并不大,因为浮点数和整数的底层解释方式完全不同,具体见I...阅读全文

博文 2016-03-18 18:00:39 abv123456789

golang的fmt包

package fmt import "fmt" mt包实现了类似C语言printf和scanf的格式化I/O。格式化verb('verb')源自C语言但更简单。 Printing verb: 通用: %v 值的默认格式表示。当输出结构体时,扩展标志(%+v)会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %% 百分号 布尔值: %t 单词true或false 整数: %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 表示为八进制 %q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %x 表示为十六进制,使用a-f %X 表示为十六进制,使用A-F %U 表示为Unicode格式:U+1234,等价于"U+%04...阅读全文

博文 2014-10-04 19:26:41 刘地

Golang strconv包使用

// atob.go ------------------------------------------------------------ // ParseBool 将字符串转换为布尔值 // 它接受真值:1, t, T, TRUE, true, True // 它接受假值:0, f, F, FALSE, false, False. // 其它任何值都返回一个错误 func ParseBool(str string) (value bool, err error) func main() { fmt.Println(strconv.ParseBool("1")) // true fmt.Println(strconv.ParseBool("t")) // true fmt.Println...阅读全文

博文 2015-07-29 15:00:01 路人甲777

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

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位,未来可能会变成64位 还有2个特殊的整型别名 ,和字符串很相关,分别是:...阅读全文

博文 2014-10-12 21:00:11 hnxxwyq

golang编程之时间编程

golang编程之时间编程 编程离不开时间,时间管理,严格的说分成两块,一个是当前的时刻,对应的是一个点,还有是一段时间间隔。本文简单的讲讲go的时间相关的编程,比较简单,高手可以一笑而过。 golang对时间的支持,是package time做的事儿,里面有好多的函数,我就不一一举例学习,毕竟这是官方文档干的事情。我们初步的学习下常用的函数。 第一个是UNIX epoch time,确切的说就是自1970-01-01 00:00:00 GMT以来的秒数,不知道如何获取的,可以在shell下执行 date +%s manu@manu-hacks:~/code/go/self$ date +%s 1385131172 熟悉Linux下C编程的就是time函数的返回值: #include 阅读全文

博文 2015-01-31 01:00:03 stephen830

Golang 中 strings.builder 的 7 个要点

自从 Go 1.10 发布的一个月以来,我多少使用了一下 `strings.Builder`,略有心得。你也许知道它,特别是你了解 `bytes.Buffer` 的话。所以我在此分享一下我的心得,并希望能对你有所帮助。 ## 1. 4 类写入(write)方法 与 `bytes.Buffer` 类似,`strings.Builder` 也支持 4 类方法将数据写入 builder 中。 ```go func (b *Builder) Write(p []byte) (int, error) func (b *Builder) WriteByte(c byte) error func (b *Builder) WriteRune(r rune) (int, error) func (b *Bu...阅读全文

博文 2018-04-14 10:58:21 snowInPluto

golang中的时间和时区

先写一段测试代码: const TIME_LAYOUT = "2006-01-02 15:04:05" func parseWithLocation(name string, timeStr string) (time.Time, error) { locationName := name if l, err := time.LoadLocation(locationName); err != nil { println(err.Error()) return time.Time{}, err } else { lt, _ := time.ParseInLocation(TIME_LAYOUT, timeStr, l) fmt.Println(locationName, lt) return...阅读全文

博文 2018-09-19 19:34:40 云上听风

golang浮点数精度问题

今天遇到一个浮点数截取后计算的问题。截取后的浮点数,再作运算,会导致精度不准确。这种不是必现,而是根据你作运算的具体浮点数决定。 必须想办法100%避免这种问题。 直接上代码吧 问题代码 package main import ( "fmt" "strconv" ) func main() { var ff, e float64 e = 100.00 ff = -0.210615789 ff = FloatRound(ff, 4) fmt.Println(ff) // 输出 -0.2106 qq := ff * e fmt.Println(qq) // 输出 -21.060000000000002 } // 截取小数位数 func FloatRound(f float64, n int) f...阅读全文

博文 2018-05-10 15:33:05 丶老邪

Golang中除法和取模运算与Python3的区别

个人主页:[https://polar9527.github.io] 除法的取整分为三类:向上取整、向下取整、向零取整。 向上取整:向+∞ 方向取最接近精确值的整数。在这种取整方式下, 5 / 3 = 2, -5 / -3 = 2, -5 / 3 = -1, 5 / -3 = -1。 向下取整:向-∞ 方向取最接近精确值的整数。在这种取整方式下, 5 / 3 = 1, -5 / -3 = 1, -5 / 3 = -2, 5 / -3 = -2。 向零取整:向 0 方向取最接近精确值的整数,换言之就是舍去小数部分,因此又称截断取整。在这种取整方式下, 5 / 3 = 1, -5 / -3 = 1, -5 / 3 = -1, 5 / -3 = -1。 然后由除法结果根据如下公式推导出模运算结果。...阅读全文

博文 2019-06-06 14:32:43 polar9527

悟空:用Go语言编写的全文搜索引擎

最近Go语言1.5版正式发布,国内关于Go语言的学习和应用也逐渐火热,InfoQ也将关注并推动国内Go语言社区的发展。悟空开源项目是用Go语言编写的全文搜索引擎,InfoQ记者采访了它的作者陈辉,了解了这个项目背后的一些信息。 悟空搜索引擎的特点是高度可定制,具有如下特性: 高效索引和搜索(1M条微博500M数据28秒索引完,1.65毫秒搜索响应时间,19K搜索QPS) 支持中文分词(使用作者自己研发的Go语言中文分词工具sego分词包并发分词,速度27MB/秒) 支持计算关键词在文本中的紧邻距离(token proximity) 支持计算BM25相关度 支持自定义评分字段和评分规则 支持在线添加、删除索引 支持持久存储 可实现分布式索引和搜索 采用对商业应用友好的Apache Licens...阅读全文

博文 2015-09-08 03:00:00 starliu

Golang字符串格式化

Golang字符串格式化 package main import "fmt" type point struct { x, y int } func main() { // 格式化整型,使用`%d`是一种 // 标准的以十进制来输出整型的方式 // 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。) fmt.Println("=====%d,输出十进制====") fmt.Printf("%d\n", 110) //Output: 110 // 输出整型的二进制表示方式 fmt.Println("=====%b,输出二进制====") fmt.Printf("%b\n", 110) //Output: 1101110 // 输出整型数值所对应的字符(c...阅读全文

记一次golang gc优化过程

我们使用golang编写的线上服务,通常会设置一个golang runtime指标监控,包括goroutine num、gc num、gc pause 等等。最近的一次上线,发现 gc 相关的指标出现异常,gc num 和 gc pause 大幅升高。由于 golang 的 gc 是 stop the world 来做, gc 过多会抢占程序的正常执行时间,甚至影响对外提供的服务,因此暂停了上线,准备先把 gc 的问题修复下。 出问题时的 gc 监控如下: image.png 其中蓝色曲线表示 gc num,黄色曲线表示 gc pause(单位ms),两个指标都是30s的累计数据。可以看到每30s的pause达到了秒级别。 登录到线上机器,通过 go tool pprof --alloc_o...阅读全文

博文 2017-09-25 12:34:48 zippera

golang标准库binary学习

简介 Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints. The varint functions encode and decode single integer values using a variable-length encoding; smaller values require fewer bytes.For a specification, see https://developers.google.com/protocol-buffers/docs/encoding. 翻译:binary 包,...阅读全文

博文 2018-07-05 17:34:48 Tim_SSS

Go语言学习(四)常用类型介绍

1.布尔类型 var v1 bool v1 = true; v2 := (1==2) // v2也会被推导为bool类型 2.整型 类 型 长度(字节) 值 范 围 int8 1  128 ~ 127 uint8(即byte)1 0 ~ 255 int16 2  32 768 ~ 32 767 uint16 2 0 ~ 65 535 int32 4  2 147 483 648 ~ 2 147 483 647 uint32 4 0 ~ 4 294 967 295 int64 8  9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 uint64 8 0 ~ 18 446 744 073 709 551 615 int 平台相关 ...阅读全文

博文 2016-04-02 14:00:00 mChenys

golang中net包用法(三)--TCP和UDP以及Unix domain socket

type TCPAddr //表示TCP终端地址 type TCPAddr struct { IP IP Port int Zone string // IPv6寻址范围 } func ResolveTCPAddr(net, addr string) (*TCPAddr, error)//将一个地址解析成TCP地址形式,形如"host:port"或 "[ipv6-host%zone]:port",解析得到网络域名和端口名.其中net必须是"tcp","tcp4"或者"tcp6",IPv6地址字面值/名称必须用方括号包起来,如"[::1]:80"、"[ipv6-host]:http"或"[ipv6-host%zone]:80". func (a *TCPAddr) Network() stri...阅读全文

博文 2015-06-18 19:00:33 chenbaoke

golang测试TCP最大连接数

受限于本地端口数的分配,我想看看本地能起到多少个TCP client连接 本测试用例client和server都部署在同一台linux虚拟机上 查看进程打开的描述符数:102400(10万) [root@bogon ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 15042 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited o...阅读全文

博文 2015-10-27 13:00:03 webyh

golang printf中的%c,%d,%u.都分别代表输出的是什么类型的?

%表示格式化字符串输出目前printf支持以下格式的输出,例如:printf("%c",a);输出单个字符。printf("%d",a);输出十进制整数。printf("%f",a);输出十进制浮点数.printf("%o",a);输出八进制数。printf("%s",a);输出字符串。printf("%u",a);输出无符号十进制数。printf("%x",a);输出十六进制数...阅读全文

博文 2017-07-10 08:07:47 Robinbing

Go 语言的基本数据类型

Go 语言的基本数据类型 0)变量声明 var 变量名字 类型 = 表达式 例: var num int = 10 其中“类型”或“= 表达式”两个部分可以省略其中的一个。 1)根据初始化表达式来推导类型信息 2)默认值初始化为0。 例: var num int // var num int = 0 var num = 10 // var num int = 10 1)整型 1.1)整型类型 类型名称有无符号bit数 int8 Yes 8 int16 Yes 16 int32 Yes 32 int64 Yes 64 uint8 No 8 uint16 No 16 uint32 No 32 uint64 No 64 int Yes 等于cpu位数 uint No 等于cpu位数 rune Ye...阅读全文

博文 2016-09-08 12:00:01 fengbohello

Go语言圣经 2.3-复数

Go提供了两种大小的复数类型:complex64和complex128,分别由float32和float64组成。内置函数complex从指定的实部和虚部构建复数,内置函数real和imag用来获取复数的实部和虚部:var x complex128 = complex(1, 2) // 1+2i var y complex128 = complex(3, 4) // 3+4i fmt.Println(x*y) // "(-5+10i)" fmt.Println(real(x*y)) // "-5" fmt.Println(imag(x*y)) // "10" 如果一个浮点数的字面量后面跟着一个i,例如3.141592i或2i,那么它将变成一个复数的虚部,这个复数的实部是0:fmt.Print...阅读全文

博文 2016-03-19 03:00:02 abv123456789

golang的slice作为函数参数传值的坑

直接贴代码 func sliceModify(slice []int) { // slice[0] = 88 slice = append(slice, 6) } func main() { slice := []int{1, 2, 3, 4, 5} sliceModify(slice) fmt.Println(slice) } 返回的没变,坑爹的,这个设计太那啥了,可以正确跑出效果的版本如下: func sliceModify(slice *[]int) { *slice = append(*slice, 6) } func main() { slice := []int{1, 2, 3, 4, 5} sliceModify(&slice) fmt.Println(slice) ...阅读全文

博文 2014-10-04 19:26:12 ziyouchutuwenwu

Go语言 字符串

在所有编程语言中都涉及到大量的字符串操作,可见熟悉对字符串的操作是何等重要。 Go中的字符串和C#中的一样(java也是),字符串内容在初始化后不可修改。 需要注意的是在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中需要将字符串转换成r...阅读全文

博文 2014-10-30 03:00:01 ghgyj

golang的io包

package io import "io" io包提供了对I/O原语的基本接口。本包的基本任务是包装这些原语已有的实现(如os包里的原语),使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加了一些相关的原语的操作。 因为这些接口和原语是对底层实现完全不同的低水平操作的包装,除非得到其它方面的通知,客户端不应假设它们是并发执行安全的。 Index Variables type Reader type Writer type Closer type Seeker type ReadCloser type ReadSeeker type WriteCloser type WriteSeeker type ReadWriter type ReadWriteCloser type Read...阅读全文

博文 2014-10-04 19:26:40 刘地

golang 中io包用法(一)

本文转自Golove博客:http://www.cnblogs.com/golove/p/3276678.html ,并在此基础上进行修改. io 包为I/O原语提供了基础的接口.它主要包装了这些原语的已有实现,如 os 包中的那些,抽象成函数性的共享公共接口,加上一些其它相关的原语。 由于这些接口和原语以不同的实现包装了低级操作,因此除非另行通知,否则客户不应假定它们对于并行执行是安全的。 在io包中最重要的是两个接口:Reader和Writer接口,首先来介绍这两个接口. type Reader interface { Read(p []byte) (n int, err error) } Reader 接口包装了基本的 Read 方法。 Read 将 len(p) 个字节读取到 p 中...阅读全文

博文 2015-06-19 01:00:27 chenbaoke

Golang使用Redis

go使用Redis 文档链接:https://godoc.org/github.com/go-redis/redis import ( "fmt" "github.com/go-redis/redis" ) var ClientRedis *redis.Client const ( REDIS_NETWORK = "tcp" REDIS_HOST = "" REDIS_PORT = "" REDIS_PASSWORD = "" REDIS_DB = 0 ) func init() { options := redis.Options{ Network: REDIS_NETWORK, Addr: fmt.Sprintf("%s:%s", REDIS_HOST, REDIS_PORT), Dia...阅读全文

博文 2020-04-05 13:32:44 是个懒人

实战讲解高并发和秒杀抢购系统设计

互联网特别是电商平台,阿里双11秒杀、还有12306春运抢票、以及平时各种节假日抢购活动等,都是典型的高并发场景。这类场景最大的特征就是活动周期短,瞬间流量大(高并发),大量的人短期涌入服务器抢购,但是数量有限,最终只有少数人能成功下单。这里,就来讲一讲对应该场景下需要考虑的技术实现。先从基本的概念的建立,再讲对应的实现部分。第一:高并发技术要做的事,一方面优化程序,让程序性能最优,单次请求时间能从50ms优化到25ms,那就可以在一秒钟内成功响应翻倍的请求了。另一方面就是增加服务器,用更大的集群来处理用户请求,设计好一个可靠且灵活扩充的分布式方案就更加重要了。第二:时间短火热的秒杀活动,真的是一秒钟以内就会把商品抢购一空,而大部分用户的感受是,提交订单的过程却要等待好几秒、甚至十几秒,更糟...阅读全文

博文 2018-09-21 21:34:39 Java架构技术分享

【有人@你】双11最时髦的消费 全宇宙的程序猿一起来HIGH

每一年,都在为媳妇买、买、买的程序猿,终于迎来了属于自己的狂欢盛宴。 没错,今年双11,阿里云会拿出若干爆款,让小伙伴们一起来high。 红包、折扣、秒杀、全场产品优惠、中奖100%…… 如何玩转阿里云双11,流量够不够都要往下拉! 1、双11当天,00:30、10:30、14:30,三场秒杀活动,云服务器ECS、云数据库RDS、弹性安全网络全部一折秒杀来袭。 2、双11当天单笔实付满1000元,即可参与抽奖,百发百中哦! 3、在校大学生双11当天享受云服务器ECS 9.9元/月+39.9元的云计算在线课程,理论+实践,才是硬本领。 4、只需实名认证,即日起登陆阿里云双11会场就能抢红包,红包最高1111元,100%中奖不掺水。 5、无论企业或个人,认证后即...阅读全文

全流程开发 GO实战电商网站高并发秒杀系统

全流程开发 GO实战电商网站高并发秒杀系统课程带领大家从需求分析开始,实战一个具备秒杀常用功能的电商系统,并进行项目优化。学完本课程,你不仅可以感受到GO语言在高并发系统中的优势,同时可以掌握架构设计与系统化开发思维,用尽可能小的代价实现尽可能大的需求,提升技术与管理的双重能力第1章 课程介绍【学前须知】本章对这门课程进行说明,包括:秒杀系统涉及模块的介绍,秒杀核心的知识点的介绍,课程的学习规划等。 1-1 课程介绍试看 1-2 ***学前必读***(助你平稳踩坑,畅学无忧,课程学习与解决问题指南)第2章 需求整理&系统设计 【明确需求】本章对秒杀系统整体需求进行梳理,明确系统具体需求,讲解系统原型设计工具的使用,并结合秒杀系统进行整体架构设计。 2-1 需求分析 2-2 系统架构设计 2-...阅读全文

博文 2019-08-01 14:32:44 人生唯我对你好

Go语言 整数和浮点数性能对比

我们团队使用Go来开发游戏服务端,游戏服务端的战斗逻辑避免不了各种计算,C的编程经验告诉我们整数运算效率比浮点运算高,但是在Go语言中,这两种数据类型的运算效率到底差多少呢?是否有必要把浮点数转换成整数的万分数或者千分数进行运算呢?下面通过实验来对比。 实验代码(github): package labs05 import "testing" func Benchmark_IntAdd(b *testing.B) { var a = 0 for i := 0; i < b.N; i++ { a += 1 } } func Benchmark_Int8Add(b *testing.B) { var a int8 = 0 for i := 0; i < b.N; i++ { a += 1 } }...阅读全文

博文 2015-06-17 23:01:27 abv123456789

【推广】阿里云双11活动开始预热 云服务器限时2折起

一年一度的阿里双11活动预热早已来袭,点火炬、淘宝站队、抓黄金猫等应接不暇。 作为阿里巴巴旗下的云服务,2017年阿里云双11活动已于1024程序员日启动。  小编将根据不同活动给大家播报如何撸阿里云双11优惠。   ##2017阿里云双11狂欢主会场>>http://click.aliyun.com/m/32992/ 爆款云服务器 · 限时2折起  活动介绍: - 1核1G云服务器 ¥720/3年; - 1核2G云服务器 ¥1200/3年; - 2核4G云服务器 ¥1500/3年; - 4核8G云服务器 ¥5800/3年  撸福利指南:做为全球云服务市场的金字塔顶端俱乐部的阿里云,其招牌产品阿里云云服务区(ECS)以安全性,便捷性,稳定性深受国内外开...阅读全文

golang reflect

reflect包实现了运行时反射,允许程序操作任意类型的对象。典型用法是用静态类型interface{}保存一个值,通过调用TypeOf获取其动态类型信息,该函数返回一个Type类型值。调用ValueOf函数返回一个Value类型值,该值代表运行时的数据。Zero接受一个Type类型参数并返回一个代表该类型零值的Value类型值 type package main import ( "reflect" "fmt" ) type lx interface { SayHi() } type User struct { Name string Age int64 Sex string } func (u *User) SayHi() { fmt.Println("hello world") } f...阅读全文

博文 2015-10-05 10:00:04 别人说我名字很长

golang学习笔记之-取随机数

取随机数 package main import ( "fmt" "math/rand" "time" ) func main() { //step1: 设置种子数 rand.Seed(time.Now().UnixNano()) //step2:获取随机数 num4 := rand.Intn(100) //[0,100) fmt.Println(num4) } 取从什么开始到什么结束: package main import ( "fmt" "math/rand" "time" ) func main() { //取[n,m]的数 语法入下: //rand.Seed(time.Now().UnixNano()) //num := rand.Intn(m-n+1) + n //取5到10的数...阅读全文

博文 2018-09-02 20:34:43 Maggie_up

乐死我了,怎么样成为一个全栈程序员(Full Stack Developer) good

受苏格拉底大神的启迪,我也来谈谈全栈。禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才。不过,因为我热爱这个行业,也有一定天赋,所以只做好软件全栈的话我想还是可能的禅师:你玩过三国志这个游戏吗码农:我还开发过禅师:你喜欢什么样的武将,诸葛亮怎么样?码农:不错,虽然他武力只有20,不过智力有100,不过游戏出战不是单打独斗,我可以给他搭配武力100,智力20的吕布,在战场上所向披靡禅师:对于一个武力65,智力65的武将,你怎么处理码农:砍头或让他下野,浪费军粮和黄金禅师:但是他很全面啊,两项能力综合130分,比诸葛亮和吕布的综合分还要高码农:话虽如此但他还是太平庸,无法独挡一面禅师:赵云怎么样码农:这是我最喜欢的武将之...阅读全文

博文 2015-05-27 03:00:00 findumars

Golang 逐行读取大文件性能对比

前 言 BUFIO 是什么? BUFIO 是用来驱动 I/O 列内的专用时钟网络,这个专用的时钟网络独立于全局时钟资源,适合采集源同步数据。BUFIO 只能由位于同一时钟区域的 Clock-Capable I/O驱动。一个时钟区域有4个 BURIO,其中的2个可以驱动相邻区域的 I/O 时钟网络。BUFIO 不能驱动逻辑资源(CLB、BRAM等),因为 I/O 时钟网络只存在于 I/O 列中。 简单点就是: bufio 包实现了带缓存的 I/O 操作 它封装一个 io.Reader 或 io.Writer 对象 使其具有缓存和一些文本读写功能 本文主要来对比一下 BUFIO 中的 ReadString 和 ReadLine 函数的性能。 注:测试代码忽略读取内容和错误处理 ReadStrin...阅读全文

博文 2017-09-13 05:34:50 51reboot

Prometheus远程存储

除了其本地时间序列数据库之外,还可以将Prometheus配置为读取和写入远程存储。这旨在支持监视数据的长期存储。 远程读 配置后,Prometheus存储查询(例如,通过HTTP API)将发送到本地和远程存储,然后合并结果。 请注意,为了在面对远程存储问题时保持可靠性,警报和记录规则评估仅使用本​​地TSDB。 配置 您可以在Prometheus配置文件的remote_read部分中配置远程存储读取路径。 最简单的是,您只需为远程存储指定读取的端点URL,再加上身份验证方法。您可以使用HTTP基本认证或承载令牌认证。 您可能需要使用read_recent标志:设置为true时,将从远程存储和本地存储中回答所有查询。如果为false(默认值),则可以从本地存储完全回答的所有查询都不会发送到...阅读全文

博文 2019-12-19 17:32:42 iyacontrol

golang标准库中的encoding/hex包

1、golang中hex包是什么? 2、hex包给开发者提供了什么内容?以及怎么使用? 3、相关链接 一、golang中hex包是什么? hex包实现了16进制字符表示的编解码。 二、hex包给开发者提供了什么内容?以及怎么使用? 变量 var ErrLength = errors.new("encoding/hex: odd length hex string") 解码一个长度为奇数的切片时,将返回此错误 type InvalidByteError byte 描述一个hex编码字符串中的非法字符。 func (e InvalidByteError) Error() string 函数 1)func DecodeLen(x int) int 长度x的编码数据解码后的明文数据的长度 2)fun...阅读全文

5折来啦!双11狂欢延伸至企业领域 计算资源也成“剁手”热门

![540-300-2.png](http://studygolang.qiniudn.com/151110/1445ee1ac36e531bf9b5de891d3e6bb8.png) 创新创业的火热,让天猫双11已不仅是个人消费者的狂欢,还延伸到了企业采购领域。截至11月9日,超10万家创新创业企业,通过阿里云官网提交了计算资源采购意向。 今年天猫双11设置了双11特色分会场。通过网站,创新创业企业和开发者可以像网购奶粉一样,一键下单获取企业IT建设所需的计算资源产品与服务。而红包、秒杀、折扣、抽奖、解码游戏……这些在阿里云版的双11中也样样俱全。 通过云计算,创新创业企业可以不再采购硬件服务器,获取计算服务的方式更便捷、成本更低,而通过云的方式“瘦身”,可以迅速构建起互...阅读全文

Go语言 时间处理详解

编程离不开时间,时间管理,严格的说分成两块,一个是当前的时刻,对应的是一个点,还有是一段时间间隔。本文简单的讲讲go的时间相关的编程,比较简单,高手可以一笑而过。 golang对时间的支持,是package time做的事儿,里面有好多的函数,我就不一一举例学习,毕竟这是官方文档干的事情。我们初步的学习下常用的函数。 第一个是UNIX epoch time,确切的说就是自1970-01-01 00:00:00 GMT以来的秒数,不知道如何获取的,可以在shell下执行 date +%s manu@manu-hacks:~/code/go/self$ date +%s 1385131172 熟悉Linux下C编程的就是time函数的返回值: #include time_t n...阅读全文

博文 2015-06-17 20:05:17 abv123456789

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 VS NET 字符串操作能力

今天拿golang 与 NET4.0 做了在字符串方面的性能比较,看看谁牛! 一、读取txt文本文件 GO的代码: readbuf, _ := ioutil.ReadFile(userFile) strcontent := string(readbuf) NET的代码: string file = @"D:\txt\1.txt"; string strcontent = File.ReadAllText(file); 他们读的都D:\txt\1.txt 文件,大小是445M(如果文件太大,超过了500M,GO进行读取的时候会出现内存溢出的异常) GO的读取速度是在1秒左右,NET的读取速度是在2秒左右 二、字符串分割 主要对上面读取出来的字符串做Split分割的操作 go的代码:arry:=...阅读全文

博文 2014-10-04 19:26:25 jiangguanghe

go浮点数转字符串保留小数点后N位解决办法

最近在项目中碰到很多次float转string,同时要求保留小数点后几位,并且去掉小数点后0的场景 虽然问题很简单,但是隔了挺久没处理这种场景就有些生疏了,自己也搜了一下,很多回答都不太满意。这里贴一下自己的做法,如果有更好的解决办法的话,还请多多指教 // 主要逻辑就是先乘,trunc之后再除回去,就达到了保留N位小数的效果 func FormatFloat(num float64, decimal int) string { // 默认乘1 d := float64(1) if decimal > 0 { // 10的N次方 d = math.Pow10(decimal) } // math.trunc作用就是返回浮点数的整数部分 // 再除回去,小数点后无效的0也就不存在了 retur...阅读全文