
golang
CamelGem
这个作者很懒,什么都没留下…
展开
-
用golang解析json
文章目录编码解码带interface{}的通用JSON解码任意数据引用类型编码器和解码器JSON (JavaScript Object Notation) 是一种简洁的数据交换格式。从语法上讲,其类似于 JavaScript 的对象和列表。最常用于 Web 后端和浏览器中运行的 JavaScript 程序之间的通信,但也用于许多其他地方。编码要编码 JSON 数据,我们可以使用 Marshal 函数.func Marshal(v interface{}) ([]byte, error)给定Go数原创 2020-10-03 23:08:45 · 456 阅读 · 0 评论 -
Go中的反射模型
文章目录类型和接口接口的表示形式从接口反射出对象从反射对象到接口值修改反射对象的值对结构体类型的值进行发射总结反射是指程序检查自身结构的能力,尤其是通过类型;它是一种元编程,也是产生混乱的重要根源。类型和接口反射建立在类型系统之上,所以让我们从go语言的类型开始。Go是静态类型语言,每个变量都有一个静态的类型,即在编译时类型已知且固定:比如int, float32,*MyType,[]byte等等。如果我们声明:type MyInt intvar i intvar j MyInt那么i的类原创 2020-10-03 19:37:02 · 295 阅读 · 0 评论 -
Golang中的常量
golang中的常量文章目录golang中的常量字符常量短声明变量和类型推导布尔值浮点数复数整数数字在Go中,我们通常使用const关键字来定义一个常量,它为标量值引入了名称,例如2或者3.14或者helloworld.这样的值在Go中被称为常量。常量也可以通过根据常量构建的表达式来创建,例如2+3或者2*3或者“go"+"lang"等。有些语言支持常量,而有些语言不支持常量,有些语言虽然支持常量,但是定义常量的方式不同,意义也不同。但是在Go中,常数只是一个简单而不变的值。字符常量数字常量有很多原创 2020-10-03 18:21:02 · 4253 阅读 · 0 评论 -
Golang编程示例part2
文章目录定时器打点器线程池速率限制原子计数器互斥锁状态协程排序使用函数自定义排序panicdefer组合函数字符串函数字符串格式化正则表达式JSON解析XML解析时间戳时间格式化随机数数字解析url解析SHA1散列读文件写文件过滤行文件路径文件目录临时文件和目录命令行参数命令行标志命令行子命令环境变量HTTP客户端HTTP服务端生成进程执行进程信号退出定时器package mainimport ( "fmt" "time")func main() { //创建一个定时器对象,原创 2020-09-29 19:14:28 · 340 阅读 · 0 评论 -
Golang编程示例part1
文章目录数据类型单引号双引号和反引号变量for循环if/elseswitch/case数组切片关联数组range函数多返回值函数变参函数闭包递归指针结构体方法接口错误处理协程通道通道同步单向通道通道关闭通道遍历通道缓冲通道选择器数据类型package main目录 数据类型单引号双引号和反引号变量for循环if/elseswitch/case数组切片关联数组range函数多返回值函数变参函数闭包递归指针结构体方法接口错误处理 协程通道通道同步单向通道通道关闭通道遍历通道缓冲通道选择器import "原创 2020-09-29 12:46:32 · 722 阅读 · 0 评论 -
golang中make和new的使用
Go中make和new的使用make用于内建类型(map、slice 和channel)的内存分配。new用于各种类型的内存分配 内建函数new本质上说跟其它语言中的同名函数功能一样:new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。有一点非常重要:new返回指针内建函数make(T, args)与new(T)有着不同的功能,make只能创建slice、map和channel,并且返回一个有初始值(非零)的T类型原创 2020-09-08 19:34:45 · 472 阅读 · 0 评论 -
golang中指针接收者和值接收者的区别
一般来说,我们通常会在实施接口的时候,选择用值接收者,其实指定指针接收者也是允许的。但是当实施接口的时候使用指针接收者与使用值接收者是由细微差别的。通过以下的示例来了解一下:package mainimport "fmt"type Describer interface { Describe()}type Person struct { name string age int}func (p Person) Describe() { //implem原创 2020-07-11 10:46:48 · 761 阅读 · 0 评论 -
golang中的类型断言和类型切换
类型断言作用:用于提取一个接口底层值。语法:i.(T), 用来获取混合类型是T的接口的底层值,让我们来看一下例子:package mainimport ( "fmt")func assert(i interface{}) { s := i.(int) //get the underlying int value from i fmt.Println(s)}func main() { var s interface{} = 56 asse原创 2020-07-11 09:43:31 · 489 阅读 · 0 评论 -
Golang中的变量类型
第4部分:类型这是Golang教程系列中的第4个教程。请阅读Golang教程第3部分:本系列的变量,以了解变量。以下是可使用的基本类型布尔数值类型int8,int16,int32,int64,intuint8,uint16,uint32,uint64,uintfloat32,float64complex64,complex128字节rune字符串布尔布尔类型表示布尔值,可以为true或false。package mainimport "fmt"func main()翻译 2020-07-05 11:14:47 · 457 阅读 · 0 评论 -
Golang中的变量声明
第3部分:变量这是Golang教程系列中的第三篇教程,它涉及Golang中的变量。您可以阅读Golang教程第2部分:Hello World,以了解有关配置Go和运行hello world程序的信息。什么是变量?变量是为存储位置指定的名称,用于存储特定类型的值。Go中有多种语法来声明变量。让我们一一看一下。声明一个变量var name type是声明单个变量的语法。package mainimport "fmt"func main() { var age int // va翻译 2020-07-05 10:58:30 · 1443 阅读 · 0 评论