
Go语言
文章平均质量分 68
Go语言开发相关内容
韩忠康
这个作者很懒,什么都没留下…
展开
-
用户授权库Casbin的使用
官网:原创 2024-12-19 15:49:03 · 144 阅读 · 0 评论 -
Go语言反射之值反射
文章目录1 概述2 值反射对象3 修改值4 修改结构体字段值1 概述反射不仅可以获取值的类型信息,还可操作变量的值。使用 reflect.Value 类型操作变量的值。2 值反射对象reflect.ValueOf() 方法可以获取一个值的反射对象,之后可以获取值的相关信息,或者获取这个值。示例: v := make([]int, 10) valueV := reflect.Val...原创 2018-11-05 12:40:32 · 247 阅读 · 0 评论 -
Go语言反射之反射调用
文章目录1 概述2 创建实例3 调用函数4 调用方法1 概述利用反射,不仅可以获取信息,还可以创建实例,执行函数和方法。就是反射代理执行。2 创建实例创建实例的前提是具有 reflect.Type 对象,基于此创建实例。使用 reflect.TypeOf() 函数,可以获取得到某类型的 reflect.Type 对象,演示如下:typeStu := reflect.TypeOf(Stu...原创 2018-11-05 12:44:46 · 546 阅读 · 0 评论 -
Go语言中处理 HTTP 服务器
文章目录1 概述2 http.Server 类型3 http.DefaultServeMux 默认路由对象4 处理器1 概述包 net/http 提供了HTTP服务器端和客户端的实现。本文说明关于服务器端的部分。快速开始:package mainimport ( "log" "net/http")func main() { // 设置 路由 http.Handle...原创 2018-11-11 12:07:02 · 353 阅读 · 0 评论 -
Go语言中正则表达式的处理
文章目录1 概述2 获取正则对象3 匹配检测4 查找5 查找匹配位置6 查找匹配子模式7 替换8 分割1 概述正则表达式,又称规则表达式,Regular Expression,在代码中常简写为 regex、regexp 或 RE。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑...原创 2018-11-08 11:19:14 · 516 阅读 · 0 评论 -
Go语言支持的正则语法
1 字符语法说明.任意字符,在单行模式(s标志)下,也可以匹配换行[xyz]字符类[^xyz]否定字符类\dPerl 字符类\D否定 Perl 字符类[[:alpha:]]ASCII 字符类[[:^alpha:]]否定 ASCII 字符类\pNUnicode 字符类 (one-letter name)\p{Gre...原创 2018-11-08 11:21:50 · 365 阅读 · 0 评论 -
Go语言正则引擎支持的字符类
本文为正则支持的字符类附录列表。具体的Go支持的正则规则请参考:Go语言支持的正则语法perl 类符号意义\d数字 (相当于 [0-9])\D非数字 (相当于 [^0-9])\s空白 (相当于 [\t\n\f\r ])\S非空白 (相当于[^\t\n\f\r ])\w单词字符 (相当于 [0-9A-Za-z_])\W非单词字符 (...原创 2018-11-08 11:37:06 · 477 阅读 · 0 评论 -
Go中处理请求
文章目录1 概述2 `http.Request` 结构3 请求方式4 请求参数5 请求头6 请求 URL1 概述Go 语言 HTTP 服务器,在启动监听并处理接收的请求时,会将请求相关数据封装成 http.Request 对象,同时作为参数传递到请求处理器中。处理器函数的第二个参数就是对 http.Request 对象的一个引用,示例代码为:func main() { // 设置 路由...原创 2018-11-11 17:05:03 · 319 阅读 · 0 评论 -
Go语言中使用模板引擎
文章目录1 概述2 解析模板3 应用数据并发送响应1 概述处理响应主体时,最常见的方式就是发送处理好的 HTML 代码,由于需要将数据嵌入到 HTML 中,那么模板引擎(template engine)就是最好的选择。Go语言中,提供了 html/template 包,实现模板引擎的相关功能。快速使用示例:main.gopackage mainimport ( "html/...原创 2018-11-14 09:59:43 · 1623 阅读 · 0 评论 -
Go语言中使模板引擎的语法
文章目录1 模板界定符2 数据3 调用函数4 管道5 条件分支6 循环遍历7 解析子模板8 定义模板变量9 注释1 模板界定符{{ }}是默认的模板界定符。用于在 HTML 模板文件中界定模板语法。例如:Hello, {{ .User }}<br>你熟悉的技术:<ul>{{ range .List }} <li>{{.}}&am原创 2018-11-14 10:00:47 · 1233 阅读 · 0 评论 -
Go语言解析markdown
文章目录1 概述2 安装 Blackfriday3 解析 MarkDown 内容4 安全过滤安装使用1 概述Markdown 是一种轻量级的标记语言。设计的目的是通过简单、轻量级的方式来添加格式,而不需要使用 HTML。相关文档如下:Markdown语法文档Markdown语法文档(官方)Markdown语法文档(翻译)2 安装 BlackfridayGo 语言中解析 Ma...原创 2018-12-05 22:03:02 · 2129 阅读 · 0 评论 -
Go语言解析YAML
文章目录1 概述2 安装 `go-yaml/yaml`3 解析 YAML4 构建 YAML1 概述YAML是"YAML Ain’t a Markup Language"(YAML不是一种置标语言)的递归缩写。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。一个典型的 YAML 如下:title: 小韩说课category: gotag:- OOP- ...原创 2018-12-05 22:04:04 · 4575 阅读 · 1 评论 -
Go语言中操作MySQL
文章目录操作 MySQL1 概述2 MySQL 驱动安装2 打开数据库3 数据源名称4 查询操作查询多行查询单行NULL处理5 非查询操作6 预编译7 事务操作 MySQL1 概述Go 语言程序可以作为 MySQL 服务器的客户端完成 MySQL 数据库的操作。Go 语言中,使用 database/sql 包实现类 SQL 数据库的操作。sql 包是一个数据库抽象层,具体的数据库操作的实现...原创 2018-12-20 22:59:15 · 604 阅读 · 0 评论 -
Go文档整理
http://go.hellokang.net/微信关注:小韩说课原创 2018-12-20 23:12:07 · 176 阅读 · 0 评论 -
为什么是 Go 语言
文章目录1 前言2 语言定位,编码效率和执行效率的平衡点3 简约的异步并发处理方案,Goroutine 和 Channel4 简单的语法,快速的入门5 Google 后台 和 杀手级应用 Docker6 应用领域1 前言Go 语言是在 2009 年底开源的,如今已有10载。在2019年04月的 TIOBE 语言排名 (TIOBE Index for April 2019,https://www...原创 2019-04-15 17:40:12 · 457 阅读 · 0 评论 -
Go语言反射之类型反射
文章目录1 概述2 获取类型3 获取基础类型(类别)4 指针引用的元素类型5 结构体信息6 结构体标签1 概述类似于 Java,Go 语言也支持反射。支持反射的语言可以在运行时对程序进行访问和修改。反射的原理是在程序编译期将反射信息(如类型信息、结构体信息等)整合到程序中,并给提供给程序访问反射信息的操作接口,这样在程序运行期间就可以获取该反射信息,甚至支持修改操作。Go 语言使用 refl...原创 2018-11-05 12:39:38 · 717 阅读 · 0 评论 -
Go中处理响应
文章目录1 概述2 响应主体3 响应头信息4 操作cookie5 重定向6 响应 4041 概述Go 语言 HTTP 服务器,在启动监听并处理接收的请求时,会将实现了 http.ResponseWriter 接口的 http.Response 对象作为第一个参数传递到请求处理器,示例代码:func main() { // 设置 路由 http.HandleFunc("/", Inde...原创 2018-11-12 23:01:01 · 460 阅读 · 0 评论 -
Go语言中结构体的使用-第2部分OOP
1 概述结构体的基本语法请参见:Go语言中结构体的使用-第1部分结构体。结构体除了是一个复合数据之外,还用来做面向对象编程。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。也就意味着结构体类型可以类比为其他语言中的“类class”, 而结构体数据可以类比为其他语言中的 “对象”。本文就说说结构体中,面向对象的部分。2 构造工厂函数在面向对象编程中,实例化对象时...原创 2018-11-01 16:04:38 · 461 阅读 · 0 评论 -
Go语言中的变量
Go语言中的变量1 概述2 定义:声明和初始化3 类型默认值(零值)4 强类型5 类型推导6 短声明(定义)7 批量定义8 批量赋值9 匿名变量10 变量作用域1 概述变量(Variable)是程序运行过程中,内容可以变化(修改)的量,变量的功能是存储用户的数据,是计算机语言中能储存计算结果或能表示值抽象概念。变量,是通过变量的标识符定位值的过程。变量的内存模拟演示:2 定义:声明和初始...原创 2018-10-18 20:33:12 · 302 阅读 · 0 评论 -
Go语言中的常量
文章目录1 概述2 定义单个常量3 类型推导4 定义多个常量5 iota迭代定义常量6 常量在编译时确定7 常量的作用1 概述常量,一经定义不可更改的量。功能角度看,当出现不需要被更改的数据时,应该使用常量进行存储,例如圆周率。从语法的角度看,使用常量可以保证数据,在整个运行期间内,不会被更改。例如当前处理器的架构类型,可以保证不被更改。语法如下2 定义单个常量const 常量名 &lt...原创 2018-10-18 20:35:49 · 204 阅读 · 0 评论 -
Go语言的数据类型
文章目录1 概述2 整数3 浮点数4 复数5 字符6 字符串7 布尔型8 指针9 数组10 nil11 切片1 概述Go语言作为类C语言,支持常规的基础数据类型的的同时,支持常用的高级数据类型。他们是:整数,int,uint,int8,uint8,int16,uint16,int32,uint32,int64,uint64浮点(小数),float32,float64复数,complex...原创 2018-10-20 00:08:07 · 243 阅读 · 0 评论 -
Go语言中的流程控制
文章目录1 概述2 条件分支 if3 状态分支 switch3.1 基础3.2 fallthrough,向下穿越3.3 条件型 switch4 循环for4.1 基本4.2 省略语句4.3 break4.4 continue4.5 嵌套循环5 goto6 延迟执行defer1 概述Go语言提供了条件分支 if,状态分支 switch,循环 for,跳转 goto,延迟执行 defer,这些流程...原创 2018-10-22 22:57:35 · 287 阅读 · 0 评论 -
Go语言中数组的使用
文章目录1 概述2 定义语法3 []索引访问4 数组是值类型5 len() 长度6 数组遍历7 多维数组8 数组传参9 ==,!= 数组间的比较1 概述数组,切片,map是容器数据类型。都是可以存储多个值的符合类型。其中数组是相同类型的一组已编号且长度固定的数据项序列,不用类型和长度是不同的数据类型,例如[5]int, [3]int, [5]byte是不同的类型。2 定义语法// 定义...原创 2018-10-28 21:52:15 · 840 阅读 · 0 评论 -
Go语言中的字符串处理
文章目录1 概述2 常规操作[]索引访问unicode/utf8 包len(),字符串占用的字节数+,字符串连接"==, >, <strings.Compare(a, b string) intstrings.Contains(s, substr string) boolstrings.ContainsAny(s, chars string) boolstrings.ContainsR...原创 2018-10-25 21:55:20 · 1072 阅读 · 1 评论 -
Go语言中的运算符
文章目录1 概述2 算术运算3 字符串连接运算 +4 关系运算5 逻辑运算6 指针运算7 位运算8 赋值运算9 运算符优先级10 类型转换1 概述Go语言提供了,算术,关系,逻辑,位,指针,赋值运算符。本篇整体说明一下。2 算术运算+ 相加- 相减* 相乘/ 相除% 求余++ 自增– 自减几个细节,需要留意一下。整数与浮点数进行运算,会将整数转化为浮点数,再运算。两...原创 2018-10-21 20:58:45 · 641 阅读 · 0 评论 -
Go语言中的函数
文章目录1 概述2 定义3 参数4 返回值5 函数变量6 函数参数7 匿名函数8 闭包9 函数调用示意图10 递归调用1 概述函数,function,独立的,用于实现具体功能的代码块。主要目的,是代码的重用(重复使用),更好的管理代码,模块化开发。函数通常使用参数和返回值,与调用者交互数据。参数给函数传递数据,返回值,函数将处理好的数据传递给调用者。Go语言中函数被称为一等公民(first...原创 2018-10-23 23:15:35 · 698 阅读 · 0 评论 -
Go语言中映射表map的使用
1 概述Go语言中的键值对(key->value)集合,称之为映射map。映射map是变长类型,定义时不需要指定长度。映射map是无序的,遍历是的顺序不可期,原因是底层由hash表实现。逻辑结构表示为:2 创建语法var m = map[key_type]value_type{key1: value1, key2: value2}var m = make(map[key_type...原创 2018-10-31 12:33:08 · 254 阅读 · 0 评论 -
Go语言中多字节字符的处理
文章目录1 概述2 `UTF-8` 和 `Unicode` 的关系3 `Unicode` 包Is(rangeTab \*RangeTable, r rune) boolIn(r rune, ranges ...\*RangeTable) boolIsOneOf(ranges []\*RangeTable, r rune) boolIsSpace(r rune) boolIsDigit(r rune...原创 2018-10-26 23:32:27 · 452 阅读 · 0 评论 -
Go语言的包管理
文章目录1 概述2 main包3 包定义,package4 导入包,import4 GOPATH环境变量5 init() 包初始化1 概述Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。2 main包Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,需要impo...原创 2018-10-25 00:35:06 · 199 阅读 · 0 评论 -
Go语言中切片的使用
文章目录1 概述2 创建切片3 for-range 遍历4 append() 扩容5 copy() 拷贝切片6 常用操作通过索引 i 删除切片中某个元素删除索引 i-j 的元素在索引 i 的位置插入元素在 s1 索引 i 的位置插入切片 s2 的所有元素栈操作模拟队列操作模拟1 概述其中切片是基于数据中连续片段的引用,是一个引用类型。与数组不同的是,切片的长度可以在运行时修改。使用上可以将切片...原创 2018-10-30 11:32:25 · 3045 阅读 · 0 评论 -
Go语言中其他数据与字符串类型的转换
文章目录1 概述2 与切片的转换3 strconv 包strconv.Atoi(s string) (int, error)strconv.Itoa(i int) stringstrconv.ParseFloat(s string, bitSize int) (float64, error)strconv.ParseInt(s string, base int, bitSize int) (i i...原创 2018-10-27 19:44:58 · 341 阅读 · 0 评论 -
Go语言中结构体的使用-第1部分结构体
1 概述结构体是由成员构成的复合类型。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。结构体成员,也可称之为成员变量,字段,属性。属性要满足唯一性。结构体的概念在软件工程上旧的术语叫 ADT(抽象数据类型:Abstract Data Type)数据层面,结构体是自定义数据类型,可以理解成是由一系列具有相同或不同类型的数据构成的数据集合。因此结构体也被称之为抽象数据...原创 2018-11-01 16:03:52 · 685 阅读 · 0 评论