Golang
文章平均质量分 94
Golang
蝎子莱莱xo
这个作者很懒,什么都没留下…
展开
-
Go后端开发 -- 环境搭建
配置完后,保存并加载一下:原创 2023-12-20 11:05:20 · 2532 阅读 · 0 评论 -
Go后端开发 -- Golang的语言特性
代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。代表项目:go-kit、micro、monzo bank的typhon、bilibili等。编译完成的可执行程序是比较大的,因为已经把所有需要的库全部静态编译起来了;代表项目:tidb、influxdb、cockroachdb等。代表项目:以太坊、hyperledger等。编译的时候就可以检查出来隐藏的大多数问题;通过编译的时候就可以知道代码哪里有问题;外,不依赖其他的库,可以直接。原创 2023-12-20 11:38:41 · 767 阅读 · 0 评论 -
Go后端开发 -- main函数 & 变量 & 常量 & 函数
常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。//显式类型定义//隐式类型定义:fmt.Println("面积为:", area)const (UNKNOW = 0FEMALE = 1MALE = 2数字 0、1 和 2 分别代表未知性别、女性和男性。常量可以用常量计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过。原创 2024-01-02 10:39:52 · 1096 阅读 · 0 评论 -
Go后端开发 -- Go Modules
Go modules 是 Go 语言的依赖解决方案,发布于 Go1.11,成长于 Go1.12,丰富于 Go1.13,正式于 Go1.14 推荐在生产上使用。Go 语言长久以来的依赖管理问题。“淘汰”现有的 GOPATH 的使用模式。统一社区中的其它的依赖管理工具(提供迁移功能)。原创 2024-01-03 11:35:31 · 1325 阅读 · 0 评论 -
Go后端开发 -- 条件、循环语句 && defer语句
select 是 Go 中的一个控制结构,类似于 switch 语句。Go 语言的 For 循环有 3 种形式,只有其中的一种使用分号。condition: 关系表达式或逻辑表达式,循环控制条件;for 循环是一个循环控制结构,可以执行指定次数的循环。post: 一般为赋值表达式,给控制变量增量或减量。以上代码中的 key 和 value 是可以省略。init: 一般为赋值表达式,给控制变量赋初值;运行时panic异常一旦被引发就会导致程序崩溃。else语句的区别是。这个特性常用于处理成对的操作,如。原创 2024-01-05 17:38:38 · 1345 阅读 · 0 评论 -
Go后端开发 -- 数组 && slice && map && range
切片不需要说明长度或使用make()函数来创建切片,make函数可以为容器开辟空间也可以简写为也可以指定容量,其中capacity为可选参数。这里 len 是数组的长度并且也是切片的初始长度。//切片定义切片初始化直接初始化切片,[]表示是切片类型,{1,2,3}初始化值依次是1,2,3.其cap=len=3初始化切片s,是数组arr的引用将arr中从下标startIndex到endIndex-1 下的元素创建为一个新的切片缺省endIndex时将表示一直到arr的最后一个元素。原创 2024-01-15 15:52:05 · 996 阅读 · 0 评论 -
Go后端开发 -- 面向对象特征:结构体 && 继承 && 多态 && interface
type用来声明数据类型//声明一种新的数据类型myint,是int的一个别名 type myint int使用type定义结构体可以先定义后初始化;也可以直接在{}中初始化// 定义一个结构体//可以先定义后初始化book1.author = "李四"//也可以直接在{}中初始化book2 := Book{title: "c++", author: "王五"}上面实例的结构体类型Hero的首字母是大写的go语言的封装是针对包来封装的,类的公有和私有都是针对包来的。原创 2024-01-16 16:03:05 · 2013 阅读 · 0 评论 -
Go后端开发 -- 反射reflect && 结构体标签
反射可以大大提高程序的灵活性,使得interface{}有更大的发挥余地反射必须结合interface才玩得转变量的type要是concrete type的(也就是interface变量)才有反射一说反射可以将“接口类型变量”转换为“反射类型对象”反射使用TypeOf和ValueOf函数从接口中获取目标对象信息反射可以将“反射类型对象”转换为“接口类型变量reflect.value.Interface().(已知的类型)遍历的Field获取其Field。原创 2024-01-18 10:52:04 · 1144 阅读 · 1 评论 -
Go后端开发 -- goroutine && channel
多进程操作系统解决了阻塞的问题存在切换成本设计复杂将一个线程分为用户线程和内核线程,CPU只能看到内核线程使用协程调度器调度多个协程,形成N:1关系多个线程管理多个协程,M:N,语言的重点就在于协程调度器的优化channel是Go语言中的一个核心类型,可以把它看成管道。并发核心单元通过它就可以发送或者接收数据进行通讯,这在一定程度上又进一步降低了编程的难度。channel是一个数据类型,主要用来解决go程的同步问题以及go程之间数据共享(数据传递)的问题。原创 2024-01-22 16:16:15 · 1008 阅读 · 2 评论 -
Go后端开发 -- 即时通信系统
虚线框内:server是服务器,user是用户server中:online map用来记录当前那些用户在线;channel用于进行广播;user中:一个用户对应两个go程,一个go程用于阻塞地从channel中读取消息,若有消息,会立即会写给客户端;另一个go程会阻塞等待客户端发消息;这是读写分离模型。原创 2024-01-24 17:36:39 · 745 阅读 · 1 评论