Go语言基础
自学Go语言的笔记
奶糖芯
成功之前说什么都是借口,
成功之后说什么都是炫耀。
展开
-
golang — gin框架
gingin框架搭建的项目,项目入口大致写法:// 以gin框架搭建的项目入口func main() { //1. 设置默认路由引擎,Default()中默认包含Logger(), Recovery()这两个中间件的使用 /*r := gin.New() r.Use(gin.Recovery())*/ r := gin.Default() // 2.具体实现 Router(r) //3. 启动 _ = r.Run(":8080")}func Router(r *gin.Eng原创 2022-04-29 15:20:38 · 1209 阅读 · 0 评论 -
Golang —上下文Context
上下文Context上下文 context.Context 是Go语言中用来 设置截止日期、同步信号、传递请求相关值的结构体。context.Context接口定义的四个需要实现方法Deadline — 返回 context.Context 被取消的时间,也就是完成工作的截止日期;Done — 返回一个 Channel,这个 Channel 会在当前工作完成或者上下文被取消后关闭,多次调用 Done 方法会返回同一个 Channel;Err — 返回 context.Context 结束的原因,原创 2022-04-07 15:24:33 · 593 阅读 · 0 评论 -
Golang中的Channel
1. ChannelGoroutine(协程) 使用 Channel 传递数据图中两个 Goroutine 一个向 Channel 中发送数据,另一个从 Channel 中接收数据,通过Channel 间接完成通信;1.1 数据结构Go 语言的 Channel 在运行时使用 runtime.hchan 结构体表示。在 Go 语言中创建新的 Channel 时,实际上创建的都是如下所示的结构:type hchan struct { qcount uint // Channel 中元素的个数原创 2022-04-06 16:58:41 · 918 阅读 · 0 评论 -
Golang之Gorm
Gorm 中的增删改查一个神奇的,对开发人员友好的 Golang ORM 库警告:当删除一条记录的时候,你需要确定这条记录的主键有值,GORM会使用主键来删除这条记录。如果主键字段为空,GORM会删除模型中所有的记录。package mainimport ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite")var a = gorm.DB{}// 首先设置一个结构体type Product原创 2022-02-28 22:16:05 · 1058 阅读 · 0 评论 -
Golang中make和new的区别
Golang中make和new的区别new 和 make 是内建的两个函数,主要用来创建分配类型内存区别:make: 只用于slice、map以及channel的初始化, 无可替代make 无可替代我们在使用slice、map以及channel的时候,还是要使用make进行初始化,然后才才可以对他们进行操作。new: 用于类型内存分配(初始化值为0), 不常用;new不常用所以有new这个内置函数,可以给我们分配一块内存让我们使用,但是现实的编码中,它是不常用的。我们通常都是采用短原创 2022-02-24 17:35:45 · 443 阅读 · 0 评论 -
Go语言——Viper
Viperviper介绍:viper是适用于Go应用程序的完整配置解决方案;viper支持的种类:viper能够设置默认值;viper可以读取 JSON、YAML、envfile 和 Java properties等格式的配置文件;可以读取环境变量中的配置信息;读取命令行参数中的配置信息;读取远程配置系统(etcd 或 Consul)中的配置信息,并监控配置信息是否发生改变;viper使用的优先顺序,每个项目优先于其下面的项目:显式调用 Set 方法设置值flag(命令行参数);原创 2022-02-11 19:34:21 · 1635 阅读 · 0 评论 -
正则表达式基础
正则表达式个人学习正则表达式记录的一些常用知识;(学完写一些简单的正则表达式应该没有什么问题????)1. 入门举例:比如查找hi这个单词,最简单的是直接输入hi,但是在查找的时候,可能查找到him,high等等;要想要精确查找,使用**\bhi\b**;1.1 元字符代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结原创 2021-10-26 15:53:31 · 134 阅读 · 0 评论 -
Go语言之快速排序
Go语言之快速排序package mainimport ( "fmt" "math/rand" "time")/*快速排序 */func quickSort(arr []int) []int { len := len(arr)//长度 if len <= 1 { return arr } quick(arr, 0, len-1) return arr}func quick(arr []int, begin, end int) { //首先进行切分 if原创 2021-10-25 19:05:33 · 306 阅读 · 0 评论 -
Go语言之插入排序
Go语言之插入排序代码package mainimport ( "fmt" "math/rand" "time")/*插入排序:从小到大排序 */func insertSort(arr []int) []int { len := len(arr)//数组长度 for i := 1; i < len; i++ { deal := arr[i] //待排序的数 j := i - 1 //待排序左边第一个数的位置 // 如果第一次比较,比左边的已排好序的第一原创 2021-10-22 16:36:08 · 279 阅读 · 0 评论 -
Go语言之选择排序
Go语言之选择排序代码每次遍历,都找到(选择)最小的,放在前面,这样排完就是从小到大,从大到小同理package mainimport ( "fmt" "math/rand" "time")/*选择排序: 从小到大排序 */func selectSort(arr []int) []int { len := len(arr)//计算数组的长度 if len <= 1 { return arr //这个时候不需要进行排序 } for i := 0; i <原创 2021-10-22 14:40:51 · 253 阅读 · 0 评论 -
golang内置排序sort.Slice()
golang内置的排序sort.Slice()直接上例子链接:力扣上实战题代码类似于java中的重写compare方法;func topKFrequent(nums []int, k int) []int { n2p := make(map[int]int) //利用map统计元素和出现次数的对应关系 for _, n := range nums { n2p[n]++ } var priorities []Priority //优先级队列的原创 2021-10-22 10:49:13 · 1321 阅读 · 0 评论 -
Go语言和Redis连接池
Go语言和Redis连接池1.代码演示package mainimport ( "fmt" "github.com/garyburd/redigo/redis")/* Redis 连接池 */var pool *redis.Pool // 创建redis连接池func init() { // 进行实例化连接池 pool = &redis.Pool{ MaxIdle: 16, // 最初的连接数量 //MaxActive: 10,//最大连接数量 MaxA原创 2021-08-20 19:32:23 · 266 阅读 · 0 评论 -
Go语言操作Redis的增删改查
Go语言操作Redis的增删改查package mainimport ( "fmt" "github.com/garyburd/redigo/redis")/* 链接Redis(前提是要启动redis服务,要不然无法连接 redis-server.exe redis.windows.conf)*/func main() { //连接数据库 c, err := redis.Dial("tcp","localhost:6379") if err != nil { fmt.Pr原创 2021-08-20 18:46:14 · 593 阅读 · 0 评论 -
Go语言之冒泡排序
Go语言之冒泡排序package mainimport ( "fmt" "math/rand" "time")/*冒泡排序: 从小到大排序 */func bubbleSort(arr []int) []int { for i := 0;i < len(arr) - 1;i++{ for j := 0;j < len(arr)-1-i;j++{ if arr[j] > arr[j +1]{ tmp := arr[j] arr[j] =原创 2021-08-16 17:51:41 · 174 阅读 · 0 评论 -
Go语言中的数组
Go语言中的数组1.数组定义第一种var arr3 []int//定义,初始值是数组值类型的零值进行初始化,例如int型就是0;//语法:var 数组名 []type第二种//语法:var arr [3]type = []type{1, 2, 3}(其中type代表数据类型)var arr [3]int = []int{1,2,3}第三种arr1 := [5]int{1,2,3,4,5}//指定数组大小,指定初始值arr2 := []int{1}//不指定数组大小2.数组遍历第原创 2021-07-14 14:57:52 · 296 阅读 · 1 评论 -
Go语言中的for语句(用来循环和迭代)
前言:Go语言中使用for来进行循环和迭代,在Go语言中没有while,do,until这些关键字;1.for循环初认识package mainimport "fmt"func main(){ repeated := repeat("a") expected := "aaaaa" if repeated != expected { fmt.Println("error") } fmt.Println("ejkcbija")}//用来练习for循环和迭代func repeat(原创 2021-07-13 20:02:36 · 528 阅读 · 1 评论 -
Go第二节
Go第二节if语句和其他语言和类似变量声明语法:var Name := value常量语法:const varName = “Hello”(和其他语言类似,const是常量的类型)switch:和其他编程语言类似switch language { case french: prefix = "法语" case spanish: prefix = "西班牙语" }代码练习func Adder(a int,b int原创 2021-07-13 19:16:58 · 90 阅读 · 0 评论 -
Go语言初学
Go语言初学1.第一个go代码Hello word//package _0210713package main//这个记住import "fmt"//导入一个包含Println函数的包,用于打印输出func main() { fmt.Println("hello") println("word")}2.hello word进阶首先func是用来创建函数的;这样就可以单独创建一个函数来实现helloword;创建函数的格式:func 函数名() 数据返回类型{}可原创 2021-07-13 15:44:12 · 118 阅读 · 0 评论