接口断言 因为空接口 interface{}没有定义任何函数,因此 Go 中所有类型都实现了空接口。当一个函数的形参是interface{},那么在函数中,需要对形参进行断言,从而得到它的真实类型。 语法格式: 示例代码: 断言其实还有另一种形式,就是用在利用 switch语句判断接口的类型。每一个 ...
分类:
编程语言 时间:
2020-04-26 13:51:17
阅读次数:
52
在深入阅读runtime和标准库的源码时候,发现底层有大片代码都会与汇编打交道,所以这篇文章主要是介绍golang使用到的汇编。 go汇编语言是一个不可忽视的技术。因为哪怕只懂一点点汇编,也便于更好地理解计算机原理,也更容易理解Go语言中动态栈/接口等高级特性的实现原理。 本文涉及到计算机架构体系相 ...
分类:
编程语言 时间:
2020-04-26 11:08:00
阅读次数:
82
Go 官方博客近日公布了 2019 年 Go 语言调查报告。本次调查收到的回复达到 10,975 份,约为去年的两倍。这些受访者的反馈意见将被选取用于改进 Go 语言的发展。 ...
分类:
编程语言 时间:
2020-04-26 10:48:03
阅读次数:
68
反射reflect 一、引入 先看官方Doc中Rob Pike给出的关于反射的定义: 维基百科中的定义: 不同语言的反射模型不尽相同,有些语言还不支持反射。《Go 语言圣经》中是这样定义反射的: Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具 ...
分类:
编程语言 时间:
2020-04-26 10:39:57
阅读次数:
61
package main import ( "fmt" "sync" "time" ) /* 城管预警 ·监听城管大队 ·烧烤摊集群:监听城管大队,只要出动就发消息通知工会主席并进入阻塞等待至被唤醒,否则就提供露天烧烤 ·公关专员:摆平城管大队,并广播通知所有烧烤摊主 */ func main() ...
分类:
编程语言 时间:
2020-04-26 01:52:33
阅读次数:
87
一、背景介绍 Gogs 是一款类似GitHub的开源文件/代码管理系统(基于Git),Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、 ...
分类:
系统相关 时间:
2020-04-26 01:44:50
阅读次数:
71
日志项目 日志库需求分析 日志库产生的背景 程序运行是个黑盒 日志是程序之外的表现 通过日志,可以知道程序的健康状态 日志打印的级别 Debug:日志最详细,对程序的影响比较大 Trace: 用来追踪问题 Info: 比较重要的信息,比如访问日志 Warn:警告日志,表明程序存在问题 Error: ...
分类:
编程语言 时间:
2020-04-25 13:08:55
阅读次数:
67
一、docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有 ...
分类:
其他好文 时间:
2020-04-24 23:30:31
阅读次数:
161