
Go语言
文章平均质量分 75
五行散人
这个作者很懒,什么都没留下…
展开
-
GC_Golang
GC(garbage cycle)垃圾回收机制,是用于对申请的内存进行回收,防止内存泄露等问题的一种机制。go的GC机制调用方式所在位置代码定时调用runtime/proc.go:forcegchelper()gcStart(gcTrigger{kind: gcTriggerTime, now: nanotime()})分配内测时调用runtime/malloc.go:mallocgc()gcTrigger{kind: gcTriggerHeap}手动调用ru原创 2021-07-20 10:47:56 · 231 阅读 · 0 评论 -
Golang_微服务_Protobuf
一、Protobuf简介1.1、RPC 通信对于单独部署,独立运行的微服务实例而言,在业务需要时,需要与其他服务进行通信,这种通信方式是进程之间的通讯方式(inter-process communication,简称IPC)。前文已经描述过,IPC有两种实现方式,分别为:同步过程调用、异步消息调用。在同步过程调用的具体实现中,有一种实现方式为RPC通信方式,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)。远程过程调用(英语:Remote Procedure Call原创 2021-05-10 13:35:06 · 473 阅读 · 0 评论 -
Golang_反射
一、引入先看官方Doc中Rob Pike给出的关于反射的定义:Reflection in computing is the ability of a program to examine its own structure, particularly through types; it’s a form of metaprogramming. It’s also a great source of confusion.(在计算机领域,反射是一种让程序——主要是通过类型——理解其自身结构的一种能力。它是原创 2021-05-10 10:19:01 · 1433 阅读 · 0 评论 -
Golang__接口
接口1.1 什么是接口?面向对象世界中的接口的一般定义是“接口定义对象的行为”。它表示让指定对象应该做什么。实现这种行为的方法(实现细节)是针对对象的。在Go中,接口是一组方法签名。当类型为接口中的所有方法提供定义时,它被称为实现接口。它与OOP非常相似。接口指定了类型应该具有的方法,类型决定了如何实现这些方法。它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口接口定义了一组方法,如果某个对象实现了某个接口的所有方法,则此对象就实现了该接口。1.2 接口的定原创 2021-05-10 10:11:19 · 238 阅读 · 0 评论 -
Golang_结构体
一、结构体1.1 什么是结构体Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。1.2 结构体的定义和初始化type struct_variable_type struct { member definition; member definition; ... member definition;}一旦定义了结构体类型,它就能用于变量的声明variable_name :原创 2021-05-10 10:09:11 · 193 阅读 · 0 评论 -
Golang_指针
一、指针1.1 指针的概念指针是存储另一个变量的内存地址的变量。我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址。一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址。在上面的图中,变量b的值为156,存储在内存地址0x1040a124。变量a持有b的地址,现在a被认为指向b。1.2 获取变量的地址Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。package mainimport "fmt"func main() {原创 2021-05-09 17:08:20 · 123 阅读 · 0 评论 -
Golang_函数
1.1 什么是函数函数是执行特定任务的代码块。1.2 函数的声明go语言至少有一个main函数语法格式:func funcName(parametername type1, parametername type2) (output1 type1, output2 type2) {//这里是处理逻辑代码//返回多个值return value1, value2}func:函数由 func 开始声明funcName:函数名称,函数名和参数列表一起构成了函数签名。parameternam原创 2021-05-09 17:06:30 · 164 阅读 · 0 评论 -
Golang_字符串(string)
1.1 什么是stringGo中的字符串是一个字节的切片。可以通过将其内容封装在“”中来创建字符串。Go中的字符串是Unicode兼容的,并且是UTF-8编码的。示例代码:package mainimport ( "fmt")func main() { name := "Hello World" fmt.Println(name)}1.2 string的使用1.2.1 访问字符串中的单个字节package mainimport (原创 2021-05-09 17:05:37 · 204 阅读 · 0 评论 -
Golang_集合(Map)
1.1 什么是Mapmap是Go中的内置类型,它将一个值与一个键关联起来。可以使用相应的键检索值。Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的,也是引用类型使用map过程中需要注意的几点:map是无序的,每次打印出来的map都会不一样,它不能通过index获取,而必须通原创 2021-05-09 17:05:00 · 999 阅读 · 0 评论 -
Golang_切片(Slice)
1.1 什么是切片Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大切片是一种方便、灵活且强大的包装器。切片本身没有任何数据。它们只是对现有数组的引用。切片与数组相比,不需要设定长度,在[]中不用设定值,相对来说比较自由从概念上面来说slice像一个结构体,这个结构体包含了三个元素:指针,指向数组中slice指定的开始位原创 2021-05-09 17:04:17 · 227 阅读 · 0 评论 -
Golang_数组(Array)
一、数组(Array)@author:韩茹版权所有:北京千锋互联科技有限公司1.1 什么是数组Go 语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推。数组的下标取值范围是从0开始,到长度减1。数组一旦定义后,大小不能更改。1.2 数组的语法声明和初始化数组需要指明数组的大小和存原创 2021-05-09 17:03:21 · 585 阅读 · 0 评论 -
Golang_基本语法——数据类型
一、基本数据类型以下是go中可用的基本数据类型1.1 布尔型bool布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true1.2 数值型1、整数型int8有符号 8 位整型 (-128 到 127)长度:8bitint16有符号 16 位整型 (-32768 到 32767)int32有符号 32 位整型 (-2147483648 到 2147483647)int64有符号 64 位整型 (-92233720368原创 2021-05-09 17:02:01 · 209 阅读 · 0 评论 -
Golang_键盘输入和打印输出
一、打印输出1.1 fmt包fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb(‘verb’)源自C语言但更简单。详见官网fmt的API:https://golang.google.cn/pkg/fmt/1.2 导入包import "fmt"1.3 常用打印函数打印:func Print(a ...interface{}) (n int, err error)格式化打印:func Printf(format string, a ...interface{原创 2021-05-09 16:54:58 · 495 阅读 · 0 评论 -
Golang_基本语法——变量
一、变量的使用1.1 什么是变量变量是为存储特定类型的值而提供给内存位置的名称。在go中声明变量有多种语法。所以变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变1.2 声明变量var名称类型是声明单个变量的语法。以字母或下划线开头,由一个或多个字母、数字、下划线组成声明一个变量第一种,指定变量类型,声明后若不赋值,使用默认值var name typename = value第二种,根据值自行判定变量类型(类型推断Type inference)如果一个变量有一原创 2021-05-09 16:47:11 · 403 阅读 · 0 评论 -
Go语言的核心特性
一、思想Less can be more大道至简,小而蕴真让事情变得复杂很容易,让事情变得简单才难深刻的工程文化二、核心特性Go语言之所以厉害,是因为它在服务端的开发中,总能抓住程序员的痛点,以最直接、简单、高效、稳定的方式来解决问题。这里我们并不会深入讨论GO语言的具体语法,只会将语言中关键的、对简化编程具有重要意义的方面介绍给大家,体验Go的核心特性。2.1 并发编程Go语言在并发编程方面比绝大多数语言要简洁不少,这一点是其最大亮点之一,也是其在未来进入高并发高性能场景的重要筹码。不原创 2021-05-09 16:45:15 · 365 阅读 · 0 评论 -
GoLang面试题汇总
GoLang面试题汇总原创 2021-04-23 20:10:09 · 154 阅读 · 0 评论