随笔分类 -  golang

摘要:😋我是平也,这有一个专注Gopher技术成长的开源项目 "「go home」" 导读 相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。 并发模型 著名的C++专 阅读全文
posted @ 2020-04-17 20:19 MARIOOW 阅读(1114) 评论(1) 推荐(3) 编辑
摘要:我是平也,这有一个专注Gopher技术与成长的开源项目 "「go home」" 导读 学习Go语言源码的第一步就是了解先了解它的目录结构,你对它的源码目录了解多少呢? 目录总览 AUTHORS:Golang官方作者清单 CONTRIBUTING.md:加入贡献者队列的指导文件 CONTRIBUTOR 阅读全文
posted @ 2020-04-16 20:24 MARIOOW 阅读(1966) 评论(0) 推荐(0) 编辑
摘要:开源库 "「go home」" 聚焦Go语言技术栈与面试题,以协助Gopher登上更大的舞台,欢迎 ~ 背景介绍 大家都知道进程是操作系统资源分配的基本单位,有独立的内存空间,线程可以共享同一个进程的内存空间,所以线程相对轻量,上下文切换开销也小。虽然线程已经比较轻量了,但还是占近1M的内存,而今天 阅读全文
posted @ 2020-04-14 17:42 MARIOOW 阅读(1112) 评论(1) 推荐(1) 编辑
摘要:导读 在第二节,我们学习了Gin框架的路由定义与参数接收,今天应一位同学的要求,来讲解一下参数的绑定与校验。 为什么校验参数? 本不必抛出这个问题的,但顾及到初出茅庐的同学,这里解释一下。 假设做一个注册接口,传过来的用户名是不是不能太骚气?比如一堆空格和符号之类的;密码是不是不能太长也不能太短?手 阅读全文
posted @ 2020-04-10 17:02 MARIOOW 阅读(6640) 评论(0) 推荐(3) 编辑
摘要:什么是中间件 中间件,英译middleware,顾名思义,放在中间的物件,那么放在谁中间呢?本来,客户端可以直接请求到服务端接口。 现在,中间件横插一脚,它能在请求到达接口之前拦截请求,做一些特殊处理,比如日志记录,故障处理等。这就是今天要讲述的中间件,那么,它在Gin框架中是怎么使用的呢? 如何使 阅读全文
posted @ 2020-04-09 16:02 MARIOOW 阅读(1485) 评论(2) 推荐(3) 编辑
摘要:背景 go micro给我们提供了一个非常便捷的方式来快速搭建微服务,而且并不需要提前系统了解micro,下面用一个简单的示例来快速实现一个服务。 创建Proto文件 因为我们要做微服务,那么就一定有服务端和客户端,这两个端通过什么格式进行内容传输,就涉及到了序列化,比较主流的序列化协议就是JSON 阅读全文
posted @ 2020-03-27 17:15 MARIOOW 阅读(3013) 评论(1) 推荐(1) 编辑
摘要:作用 主要用来实现命令行的参数解析,以达到实现以下效果的目的 使用方式 flag是Go语言的内置包,能接收的参数类型主要有字符串、布尔和数值类型。 方式一 我们在main函数中调用 函数来定义命令,该函数共有三个参数 第一个参数是命令名称 第二个参数为默认值,也就是不传ip时默认拿到的值 第三个参数 阅读全文
posted @ 2020-03-25 17:13 MARIOOW 阅读(1164) 评论(0) 推荐(0) 编辑
摘要:背景 项目交叉编译为可执行文件之后,在其他目录执行文件时提示找不到配置文件 解决方案 直接采用以下代码获取到实际执行文件的路径,然后拼接配置文件即可 代码分析 os.Args是用来获取命令行执行参数分片的,当使用 时 分片0会是一串复杂的路径,原因是直接run go文件时会将文件转移到临时路径下,然 阅读全文
posted @ 2020-03-14 23:51 MARIOOW 阅读(8509) 评论(0) 推荐(0) 编辑
摘要:代码示例全部保存在,欢迎star:https://github.com/EnochZg/golang examples 安装组件 使用 先创建ini后缀的配置文件,本文以config.ini为例 在main函数中加入以下代码读取username配置 运行后即可读取到username的值,上文中的Se 阅读全文
posted @ 2020-03-13 22:27 MARIOOW 阅读(3931) 评论(0) 推荐(1) 编辑
摘要:创建锁文件 变量值自定义;在main函数执行完成后需要移除锁文件并关闭文件读取。 锁定文件 排它锁,不允许其他人读和写。 意味着无法锁定文件时不能阻断操作,马上返回给进程。 返回文件描述符,文件描述符是一个索引值,指向当前进程打开的文件记录表。最后在执行完毕后对文件解锁。 阅读全文
posted @ 2019-08-27 15:18 MARIOOW 阅读(3979) 评论(1) 推荐(0) 编辑
摘要:映射的定义 初识映射会很懵,因为在PHP中没有映射类型的定义。其实没那么复杂,任何复杂的类型在PHP中都可以用数组表示,映射也不例外。 映射其实就是有key有value的数组,在Go中的赋值也很类似,但需要提前声明该映射类型的键与值的类型,确保所有的键和值的赋值类型统一,否则会报错。 在PHP中还有 阅读全文
posted @ 2019-06-14 13:57 MARIOOW 阅读(1408) 评论(0) 推荐(0) 编辑
摘要:基本介绍 交叉编译是为了在不同平台编译出其他平台的程序,比如在Linux编译出Windows程序,在Windows能编译出Linux程序,32位系统下编译出64位程序,今天介绍的gox就是其中一款交叉编译工具。 配置环境 首先配置好Go语言的环境变量,并在 中设置,简单说明一下为什么要添加至该文件, 阅读全文
posted @ 2019-06-13 22:47 MARIOOW 阅读(4963) 评论(0) 推荐(1) 编辑
摘要:数组的定义 用过PHP的同学应该很清楚,无论多么复杂的数据格式都可以用数组来表达,什么类型的数据都可以往里塞,它是工作必备的一部分,使用很简单,易用程度简直变态。 在Go语言中就有所不同了,数组是一段固定长度的连续内存区域,与C语言概念完全一致,在声明数组时,要先确定数组的长度,而且数组中的元素只能 阅读全文
posted @ 2019-06-12 21:57 MARIOOW 阅读(1624) 评论(0) 推荐(0) 编辑
摘要:字符串的赋值 在PHP中,字符串的赋值虽然只有一行,其实包含了两步,一是声明变量,二是赋值给变量,同一个变量可以任意重新赋值。 Go语言实现上述两步也可以用一行语句解决,就是通过标识 赋值时同时声明变量,切记等号右侧的字符串不能用单引号,对变量的后续赋值也不能再重新声明,否则会报错。除此之外,定义的 阅读全文
posted @ 2019-06-10 21:33 MARIOOW 阅读(1700) 评论(2) 推荐(1) 编辑

点击右上角即可分享
微信分享提示