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

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} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan"} %T 相应值的类型的Go语法表示 Printf("%T", people...阅读全文

博文 2018-08-13 16:35:11 pengtoxen

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

go学习

一个特殊的变量名是_(下划线)。任何赋给它的值都被丢弃。在这个例子中,将35赋值给b,同时丢弃34。 _, b := 34, 35 完整的整数类型列表(符号和无符号)是int8,int16,int32,int64 和byte,uint8,uint16,uint32,uint64。byte 是uint8 的别名。浮点类型的值有float32 和float64 (没有float 类型)。64 位的整数和浮点数总是64 位的,即便是在32 位的架构上。需要留意的是这些类型全部都是独立的,并且混合用这些类型向变量赋值会引起编译器错误,例如下面的代码:相似的类型都是独立的 package main func main() { var a int //通用整数类型 var b int32 //32 位整...阅读全文

博文 2016-02-18 21:00:01 dai_dai

Go语言 fmt格式“占位符”

本篇文章转载自 http://www.cnblogs.com/qing123/articles/4353353.html?hmsr=studygolang.com&utm_medium=studygolang.com&utm_source=studygolang.com golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 打印一个内置值的值。 Printf("%v", people) {zhangsan} %+v 打印结构体时,会添加字段名 Pr...阅读全文

博文 2018-08-18 22:34:52 小杰的快乐时光

golang fmt格式“占位符”

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u013007900/article/details/80871970 golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"sujing"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf(“%v”, people) {sujing}, %+v 打印结构体时,会添加字段名 Printf(“%+v”, people) {Name:sujing} %#v 相应值的Go语法表示 Printf(“#...阅读全文

博文 2019-04-22 18:31:37 u013007900

使用 syscall.OpenProcess 时报错 The parameter is incorrect.

有没有高人帮忙看看?下面是全部源码(从网上抄的),我是想获取当前内存使用量。 ```go package main /* #include #include void CountPrivate(PSAPI_WORKING_SET_INFORMATION* workSetInfo,int* count) { int workSetPrivate = 0; for (ULONG_PTR i = 0; i < workSetInfo->NumberOfEntries; ++i) { if(!workSetInfo->WorkingSetInfo[i].Shared) // 如果不是共享...阅读全文

fmt.Printf中的格式化动作('verb')

# 源自C语言但更简单 ## 通用: ``` %v 值的默认格式表示 %+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+%04X" ``` ## 浮点数与复数的两个组分: ``` %b 无小数部分、二进制指数的科学计数法,如-123456p...阅读全文

博文 2018-10-03 16:53:53 ace_kylin

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采用默认格式将其参数格式化并写入标准输出。总是会在相邻参数的输出之间添加空...阅读全文

从零学习 Go 语言(03):数据类型之整型与浮点型

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读 ** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygolang.com/articles/27365) [从零学习 Go 语言(02):学习五种变量创建的方法](https://studygolang.com/articles/27432) --- ## 1. 整型...阅读全文

博文 2020-03-24 19:39:27 hello_wbm

《Golang 入门系列二》fmt格式“占位符”

前言:本文主要介绍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} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan...阅读全文

博文 2018-02-17 09:33:03 IT--小哥

Go数据类型

Go 语言是一种静态类型的编程语言,在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。编译器在进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么。 ![](https://img2018.cnblogs.com/blog/720430/201810/720430-20181026095557581-1443352750.png) ## 基本数据类型说明 |类型|描述| |:----|:----| |uint|32位或64位| |uint8|无符号 8 位整型 (0 到 255)| |uint16|无符号 16 位整型...阅读全文

Go语言学习笔记(2)

基本数据类型和string之间的转换 (1) 基本类型转string 使用 fmt.Sprintf(“%参数”, 表达式) a. 通用: 参数 含义 %v 值的默认格式表示 %+v 类似%v,但输出结构体时会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %% 百分号 b. 布尔值: 参数 含义 %t 单词true或false c. 整数: 参数 含义 %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 表示为八进制 %q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %x 表示为十六进制,使用a-f %X 表示为十六进制,使用A-F %U 表示为Unicode格式:U+1234,等价于"U+%04X" d. 浮点数...阅读全文

博文 2019-01-16 16:34:44 丹枫无迹

基础知识 - Golang 中的格式化输入输出

【格式化输出】 // 格式化输出:将 arg 列表中的 arg 转换为字符串输出 // 使用动词 v 格式化 arg 列表,非字符串元素之间添加空格 Print(arg列表) // 使用动词 v 格式化 arg 列表,所有元素之间添加空格,结尾添加换行符 Println(arg列表) // 使用格式字符串格式化 arg 列表 Printf(格式字符串, arg列表) // Print 类函数会返回已处理的 arg 数量和遇到的错误信息。 【格式字符串】 格式字符串由普通字符和占位符组成,例如: "abc%+ #8.3[3]vdef" 其中 abc 和 def 是普通字符,其它部分是占位符,占位符以 % 开头(注:%% 将被转义为一个普通的 % 符号,这个不算开头),以动词结尾,格式如下: %...阅读全文

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

golang-counting-sort

```go package main import ( "fmt" ) func main() { var arr = []int{6, 5, 3, 1, 8, 7, 2, 4, 9, 0, 3} fmt.Println(arr) CountingSort(arr) } func CountingSort(arr []int) { ln := len(arr) var sortAry = make([]int, ln, ln) var countAry = make([]int, ln, ln) for _, n := range arr { countAry[n]++ } fmt.Println("count arr :", countAry) for i := 1; i < ln; i+...阅读全文

博文 2018-01-08 19:53:58 freedbg

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} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan"} %T 相应值的类型的Go语法表示 Printf("%T", people...阅读全文

博文 2018-02-06 15:33:06 cnu2m

go编程学习

1.go 项目目录结构2.go build生成二进制文件go build hello.gogo build -o hellotest hello.go #可以指定二进制文件名3.go run 以脚本形式运行go run hello.go 4.定义变量方法package mainimport "fmt"//全局声明var n1 = 100var n2 = 200var name = "xiaohuihui" //一次性声明var (n3 = 300n4 = 900name2 = "mary")func main(){ var i int fmt.Println("i=",i) //默认值0 var num = 10.11 fmt.Println(num) name := "tom" //等价于...阅读全文

博文 2020-03-15 10:33:16 小白的希望

从golang的垃圾回收说起(上篇)

本文来自网易云社区1 垃圾回收中的重要概念1.1 定义In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program. Garbage collection was invented by John McCarthy around 1959 to simplify manual memory manage...阅读全文

博文 2018-08-28 21:30:01 zyfd

go-Printf占位符(之后有时间整理成表格)

自https://768992698.iteye.com/blog/2326069 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan"} %T 相应值的类型的Go语法表示 Printf("%T", people) mai...阅读全文

博文 2019-06-19 11:02:57 p_gerer

encoding/json

在处理网络编程时, json格式的数据方便在网络上传输, 兼具可视化和效率... 虽然效率没有那么高... 但是确实使用的很广泛呀. 这个包用于处理golang的json相关的东西. 这个包在处理json问题时, 会用到反射获取字段的tag. 可以参考反射包... golang的官方文档~ https://blog.golang.org/json-and-go package main import ( "fmt" // "reflect" "encoding/json" ) type User struct{ // Name string `json:"-,"` // 这个导出才是 {"-":"张三","age":20} // Name string `json:"-"` // alway...阅读全文

博文 2019-04-16 20:34:46 个00个

Go 字符串格式化

文地址:https://www.kancloud.cn/itfanr/go-by-example/81647 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) // `...阅读全文

博文 2020-02-12 18:33:15 1350368559

Go语言sync库和WaitGroup的使用

// code_041_sync_WaitGroup project main.go package main import ( "fmt" "sync" ) func main() { fmt.Println("Hello World!") var wg sync.WaitGroup wg.Add(2) go func() { defer wg.Done() for i := 0; i < 10000; i++ { fmt.Printf("Hello,Go.This is %d\n", i) } }() go func() { defer wg.Done() for i := 0; i < 10000; i++ { fmt.Printf("Hello, world.This is %d\n...阅读全文

Float的基本介绍

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

Go小技巧之互斥锁、随机数、time、List

// code_026_go_antic_package project main.go

package main import ( "container/list" "fmt" "math/rand" //备注2:随机数的包 "sync" //备注1:异步任务的包 "time" ) type INFO struct { lock sync.Mutex //备注1:异步锁 Name string Time int64 } var List *list.List = list.New() //备注3:初始化List变量 func main() { var Info INFO go func() { for i := 0; i < 5...阅读全文

博文 2018-10-06 17:35:09 ck_god

golang goroutine

package main import ( "fmt" "sync" "time" ) /* WaitGroup用于等待一组线程的结束。父线程调用Add方法来设定应等待的线程的数量。每个被等待的线程在结束时应调用Done方法。 同时,主线程里可以调用Wait方法阻塞至所有线程结束。 */ var wg sync.WaitGroup func test(i int){ fmt.Println("test func...", i) time.Sleep(time.Second) // 表示goroutine已经执行完成 wg.Done() } func main() { var count = 100 // 添加goroutine计数器 wg.Add(count) for i:=0;i阅读全文

博文 2019-12-14 13:32:41 就超棒

3. Go语言中的整型与浮点型

文章首发自公众号:Go编程时光 《Go编程时光》,一个能带你学习 Go 语言的专栏,同时欢迎搜索我的同名公众号【Go编程时光】(排版精美更适合阅读),第一时间获取Go语言干货。 系列导读 1. 一文搞定Go语言开发环境的搭建 2. Go 语言中五种变量创建的方法 1. 整型 Go 语言中,整数类型可以再细分成10个类型,为了方便大家学习,我将这些类型整理成一张表格。 int 和 uint 的区别就在于一个 u,有 u 说明是无符号,没有 u 代表有符号。 解释这个符号的区别 以 int8 和 uint8 举例,8 代表 8个bit,能表示的数值个数有 2^8 = 256。 uint8 是无符号,能表示的都是正数,0-255,刚好256个数。 int8 是有符号,既可以正数,也可以负数,那怎么...阅读全文

博文 2020-03-27 14:34:36 王一白

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。# btcpool矿池-核心机制总结及优化思考## 核心机制总结### ①gbtmaker* 监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt* 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka* Gbt消息大小约2M,含交易列表### ②jobmaker* 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_...阅读全文

博文 2018-10-16 18:34:41 兄弟连区块链培训

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考

btcpool矿池-核心机制总结及优化思考 核心机制总结 ①gbtmaker 监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka Gbt消息大小约2M,含交易列表 ②jobmaker 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_TOPIC_NMC_AUXBLOCK,以支持混合挖矿 接收的Gbt消息,如果与本地时间延迟超过60秒将丢弃,如果延迟超过3秒将打印log 可用的Gbt消息,将以gbtTime+isEmptyBlock+height来构造key写入本地Map,另gbtHash也会写入本地队列...阅读全文

博文 2018-10-16 15:34:50 兄弟连区块链培训

go 开发小结

数据互相转换 int 转string string := strconv.Itoa(int) string到int int,err := strconv.Atoi(string) string到int64 int64, err := strconv.ParseInt(string, 10, 64) int64到string string := strconv.FormatInt(int64,10) map 到json字符串 m := map[string]string{} mjson,_ :=json.Marshal(m) mString :=string(mjson) json到struct 如果是单层可以直接用interface转为map jsonStr = `{}` var jsonS...阅读全文

博文 2020-05-02 11:33:40 Stevenzwzhai

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} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan"} %T 相应值的类型的Go语法表示 Printf("%T", people...阅读全文

博文 2018-08-30 12:30:01 soundcode

Go语言学习之懒人速成 - 基础篇

在上一篇《入门篇》,已经提高了Go的安装和使用,接下来我们一起学习一下Golang的基础语法 为响应一起交流的朋友们的吐槽,后续文章将陆续加上目录结构,方便大家阅读(主要还是懒,O(∩_∩)O) orz......- api文档- 包 - package- main方法- 变量- 常量- iota关键字- 数组- fmt是什么鬼------------------------------------------------------------------------------------首先,先提供给大家一个api官网,开发者必备手册,地址:https://golang.org/cmd/api/当然,可能有的朋友没有VPN,连接不上官网,有一个本地查看文档的方式,如下:$> go he...阅读全文

博文 2018-12-06 19:32:38 han0373

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

兄弟连区块链教程btcpool矿池源码分析slparser

btcpool矿池-slparser(share log parser)模块解析 核心机制总结 支持三种功能: 指定Date和UID,将打印指定日期指定用户的share信息到stdout UID=0时,将打印指定日期所有用户的share信息 指定Date但未指定UID,读取指定日期sharelog,统计数据并写入数据库 按Worker、user、pool三个维度统计:Accept1h、Accept1d、score1h、score1d、Reject1h、Reject1d 数据库仅保留最近3个月统计数据 如果Date和UID均未指定,将监听文件变化,读取share并统计数据,每15秒写入数据库 同时启动Httpd服务,开放ServerStatus和WorkerStatus slparser命令使...阅读全文

博文 2018-10-26 15:34:41 兄弟连区块链培训

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} %#v 相应值的Go语法表示 Printf("#v", people) main.Human{Name:"zhangsan"} %T 相应值的类型的Go语法表示 Printf("%T", people...阅读全文

博文 2020-01-04 19:32:50 寒云暮雨

Go基础系列:WaitGroup用法说明

正常情况下,新激活的goroutine的结束过程是不可控制的,唯一可以保证终止goroutine的行为是main goroutine的终止。也就是说,我们并不知道哪个goroutine什么时候结束。 但很多情况下,我们正需要知道goroutine是否完成。这需要借助sync包的WaitGroup来实现。 WatiGroup是sync包中的一个struct类型,用来收集需要等待执行完成的goroutine。下面是它的定义: type WaitGroup struct { // Has unexported fields. } A WaitGroup waits for a collection of goroutines to finish. The main goroutine calls ...阅读全文

博文 2018-11-23 09:12:07 f-ck-need-u

3. Go语言数据类型:整型与浮点型

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更多的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 1. 整型 Go 语言中,整数类型可以再细分成10个类型,为了方便大家学习,我将这些类型整理成一张表格。 int 和 uint 的区别就在于一个 u,有 u 说明是无符号,没有 u 代表有符号。 解释这个符号的区别 以 int8 和 uint8 举例,8 代表 8个bit,能表示的数值个数有 2^8 = 256。 u...阅读全文

博文 2020-04-25 20:32:42 Python编程时光

通过例子学习 Go 和 Rust ---- 闭包

闭包简而言之,是一段有状态的代码。咱试着用闭包来做一个计数器,每次调用,闭包的状态就加1. Go func intSeq() func() int { i := 0 return func() int { i++ return i } } func main() { nextInt := intSeq() fmt.PrintLn(nextInt()) fmt.PrintLn(nextInt()) fmt.PrintLn(nextInt()) } 1 2 3 Rust 由于编译时我们无法知道闭包的体积,所以用一个Box把它套起来。另外,闭包的具体类型是不可描述的,只能用dyn关键字来通过Trait来描述。 fn main() { fn int_seq() -> Box阅读全文

博文 2020-03-03 15:32:56 Tericoder

首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API

前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳的了,大家可以放心使用。 刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是 goproxy.cn 推出了 Go 模块代理世界中的首个统计数据 API(文档详见:gopro...阅读全文

博文 2020-03-30 21:32:45 煎鱼

golang接口使用记录

golang接口使用记录 1. 总述 接口类型是对其他类型行为的概括与抽象,Go语言的独特之在于它是隐式实现,无需申明它实现哪些接口,只要提供接口所必须的方法即可。 接口即约定 实现单词和行的计数器,考虑使用bufio.ScanWords // counter.go // 计数器 type Counter interface { Count(fileName string) error } // 单词计数 type WordCount int func (w *WordCount) Count(fileName string) error { file, err := os.Open(fileName) if err != nil { return errors.New("open file...阅读全文

博文 2020-02-24 13:32:43 进击的大只文

首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API

前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳的了,大家可以放心使用。 刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是 goproxy.cn 推出了 Go 模块代理世界中的首个统计数据 API(文档详见:gopro...阅读全文

博文 2020-03-30 23:35:16 煎鱼eddycjy