首页
学习
活动
专区
工具
TVP
发布

从流域到海域

专栏作者
439
文章
498911
阅读量
59
订阅数
Go使用类型断言处理动态JSON字段
Go作为强类型语言,在序列化和反序列化过程中,都不可避免地需要定义结构体:在有IDL的情况下结构体可以使用工具自动生成(kitex),在无IDL的情况下就得手撸。
Steve Wang
2023-10-12
1290
Go语言接口(interface)
Go语言定义了新的数据类型接口(Interface)。Go语言的接口会将所有具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了该接口。
Steve Wang
2022-05-10
2410
Python json.load/loads以及json.dump/dumps有什么区别?
网络传输是一种常见的数据传输场景,在传输前,我们先将编程语言对象序列化为json/xml文件;在传输后,在将json/xml文件反序列化为对应语言的对象。
Steve Wang
2022-01-05
1.3K0
Go error接口源码和errors包源码
Go语言中经常使用的error类型本质上是一个接口,该接口只有一个方法Error(),该方法用于约束实现该接口的类型必须具有合适的将错误信息以string类型返回的同名Error()方法。
Steve Wang
2021-12-06
4860
Go go test测试机制介绍及实例【Go语言圣经笔记】
Maurice Wilkes,第一个存储程序计算机EDSAC的设计者,1949年他在实验室爬楼梯时有一个顿悟。在《计算机先驱回忆录》(Memoirs of a Computer Pioneer)这本书中,他回忆到:“忽然间有一种醍醐灌顶的感觉,我整个后半生的美好时光都将在寻找程序BUG中度过了”。肯定从那之后的大部分正常的码农都会同情Wilkes过分悲观的想法,虽然也许会有人困惑于他对软件开发的难度的粗浅看法。
Steve Wang
2021-12-06
1.3K0
Go unsafe包底层编程细节详解 【Go语言圣经笔记】
Go语言的设计包含了诸多安全策略,限制了可能导致程序运行出错的用法。编译时类型检查可以发现大多数类型不匹配的操作,例如两个字符串做减法的错误。字符串、map、slice和chan等所有的内置类型,都有严格的类型转换规则。
Steve Wang
2021-12-06
1.1K0
Go 包概念及其机制详解&内置工具使用简介 【Go语言圣经笔记】
现在随便一个小程序的实现都可能包含超过10000个函数。然而作者一般只需要考虑其中很小的一部分和做很少的设计,因为绝大部分代码都是由他人编写的,它们通过类似包或模块的方式被重用。
Steve Wang
2021-12-06
1.6K0
Go基于共享变量的并发原理及实例 【Go语言圣经笔记】
前一章我们介绍了一些使用goroutine和channel这样直接而自然的方式来实现并发的方法。然而这样做我们实际上回避了在写并发代码时必须处理的一些重要而且细微的问题(笔者注:一谈到并发,就需要处理对共享变量等公共资源的访问问题,不合理的访问问题会造成一系列诸如丢失修改、读脏数据、重复读等常见并发问题)。
Steve Wang
2021-12-06
8480
Go select语句及其相关实例 【Go语言圣经笔记】
下面的程序会进行类似于火箭发射的倒计时的工作。time.Tick函数返回一个channel,程序会周期性地像一个节拍器一样向这个channel发送事件。每一个事件的值是一个时间戳,不过更有意思的是值的传送方式。
Steve Wang
2021-12-06
5740
Go channel及其使用实例 【Go语言圣经笔记】
如果说goroutine是Go语言程序的并发体的话,那么channels则是它们之间的通信机制。一个channel是一个通信系统,它可以让一个goroutine通过它给另一个goroutine发送值信息。每个channel都有一个特定的类型,也就是channels可发送数据的类型。一个可以发送int类型数据的channel一般写为chan int。
Steve Wang
2021-12-06
1.2K0
Goroutine及其使用实例【Go语言圣经笔记】
并发程序指同时进行多个任务的程序,随着硬件的发展,并发程序变得越来越重要。Web服务器会一次处理成千上万的请求。平板电脑和手机app在渲染用户画面同时还会后台执行各种计算任务和网络请求。即使是传统的批处理问题——读取数据、计算、写输出,现在也会用并发来隐藏掉I/O的操作延迟以充分利用现代计算机设备的多个核心。计算机的性能每年都在以非线性的速度增长。
Steve Wang
2021-12-06
2670
Go 接口及其相关机制深入解读加源码剖析 【Go语言圣经笔记】
接口类型是对其它类型行为的抽象和概括;因为接口类型不会和特定的实现细节绑定在一起,通过这种抽象的方式我们可以让我们的函数更加灵活和更具有适应能力。
Steve Wang
2021-12-06
5630
Go函数及与函数相关机制 【Go语言圣经笔记】
函数可以让我们将一个语句序列打包为一个单元,然后可以从程序中其它地方多次调用。函数的机制可以让我们将一个大的工作分解为小的任务,这样的小任务可以让不同程序员在不同时间、不同地方独立完成。一个函数同时对用户隐藏了其实现细节(黑盒特性)。由于这些因素,对于任何编程语言来说,函数都是一个至关重要的部分。
Steve Wang
2021-12-06
9710
Go语言中的JSON处理 【Go语言圣经笔记】
JavaScript对象简谱(JSON, Java Script Object Notation)是一种用于发送和接收结构化信息的标准协议。在类似的协议中,JSON并不是唯一的一个标准协议。 XML(§7.14)、ASN.1和Google的Protocol Buffers都是类似的协议,并且有各自的特色,但是由于简洁性、可读性和流行程度等原因,JSON是应用最广泛的一个。
Steve Wang
2021-12-06
5860
Go 结构体【Go语言圣经笔记】
结构体是一种聚合的数据类型,它是由零个或多个任意类型的值聚合成的实体。每个值称为结构体的成员。
Steve Wang
2021-12-06
3710
Go 数组 【Go语言圣经笔记】
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。数组的长度是固定的,因此在Go语言中很少直接使用数组。Go语言中有一种和和数组强相关的类型是Slice(切片),它是可以增长和收缩的动态序列,功能也更灵活,但是要理解slice工作原理的话需要先理解数组。
Steve Wang
2021-12-06
4040
Go常量 【Go语言圣经笔记】
常量表达式的值在编译期计算,而不是在运行期。每种常量的潜在类型都是基础类型:boolean、string或数值型。
Steve Wang
2021-12-06
3020
Go字符串 【Go语言圣经笔记】
一个字符串是一个不可改变的字节序列(笔者注:修改一个字符串会产生新的字符串)。字符串可以包含任意的数据,包括byte值0,但是通常是用来包含人类可读的文本。文本字符串通常被解释为采用UTF8编码的Unicode码点(rune)序列,我们稍后会详细讨论这个问题。
Steve Wang
2021-12-06
3670
整型及相关运算符 【Go语言圣经笔记】
Go语言的数值类型包括几种不同大小的整数、浮点数和复数。每种数值类型都决定了对应的大小范围和是否支持正负符号。让我们先从整数类型开始介绍。
Steve Wang
2021-12-06
1K0
Go语言变量的生命周期 【Go语言圣经笔记】
对于在包这一级别声明的变量来说,它们的生命周期和整个程序的运行周期是一致的(笔者注:某种程度上讲是静态的)。
Steve Wang
2021-12-06
6690
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档