
Go
文章平均质量分 73
博客菜鸟飞飞飞
blog rookie
展开
-
什么是go的反射?
基础反射是在运行期间获取类的各种信息。Go语言的反射需要理解两个概念Type和Value,它们也是Go语言中reflect空间里最重要的两个类型,举例如下: type MyReader struct { Name string } func (r MyReader)Read(p []byte) (n int, err error) { // 实现自己的Read方法}var reader io.Reader reader = &MyReader{"a.txt"}原创 2022-03-31 21:34:07 · 1680 阅读 · 0 评论 -
Go语言的并发到底是什么?
背景知识在传统的并发模型中,基于内存分享,各线程通信,需要通过共享变量以及锁的同步机制。并且共享变量很麻烦,要保证:内存可见性,保证其他线程可以看到修改后的值原子性Go语言的并发编程Go语言里有同步的包,类似于Java concurrent包,能够提供锁的功能,但是不是太推荐。Go语言里提倡基于消息传递的并发模型,不共享变量,因此就不涉及锁的问题。虽然说Go语言里的Goroutine不是真正意义上的协程,但是有时我们就称呼它为“协程”。一个go关键词就可以起一个新的Go协程(注意:跟底层原创 2020-08-17 15:13:57 · 249 阅读 · 0 评论 -
Go语言的面向对象
Go语言基本语法包函数var变量const常量类型流程控制更多类型方法Go没有类。不过可以为结构体类型定义方法。方法就是一类带特殊的接受者参数的函数。方法接收者在它自己的参数列表内,位于func关键字和方法名之间。package mainimport ( "fmt" "math")type Vertex struct { X, Y float64}func (v *Vertex) Abs() float64 { return math.Sqrt(v.X*v原创 2020-08-13 21:35:40 · 137 阅读 · 0 评论 -
Go语言(Golang)是什么?
三大特点开发效率高原生支持高并发高性能开发效率高语言简单,容易上手,只有25个关键字。关键字少,框架很少,设计理念追求简单编译速度很快运维部署简单Java需要装JDK,JRE这些运行环境。JavaScript需要装Node.JS运行环境。Go语言不需要,编译好之后的可执行文件可以直接执行。原生支持高并发语言层面的原生设计GOROUTINE协程比,协程比进程更轻量级。进程是资源分配的最小单位,现成是CPU调度的最小单位。一个进程可以有很多个线程,一个线程可以有上千个协程。G原创 2020-08-02 11:56:10 · 1744 阅读 · 0 评论