go
学习真是太难了
学习真是太痛苦了.
展开
-
fyne 中文乱码解决
fyne go-gui 中文乱码原创 2022-06-07 11:55:59 · 3853 阅读 · 0 评论 -
Go语言:爬虫并写入excel
点击 爬取页面整体代码package mainimport ( "fmt" "github.com/axgle/mahonia" "github.com/xuri/excelize/v2" "io/ioutil" "net/http" "strconv" "strings")//爬笑话 录入Excelvar path = "detail60/59124.html"func main() { NewExcel() runThis() if err := file.Sav原创 2021-10-20 15:49:25 · 384 阅读 · 0 评论 -
GO语言:全局的错误捕捉
避免程序不打印错误日志挂掉defer func() { err := recover() //内置函数,可以捕捉到函数异常 if err != nil { //这里是打印错误,还可以进行报警处理,例如微信,邮箱通知 logger.Log.Errorf("err:", err) //panic(err)//退出程序 } }()...原创 2021-10-17 15:54:47 · 978 阅读 · 0 评论 -
GO语言:线程安全map sync.map
前言前一段项目启动一段后爆了个map崩溃的异常原因是多协程操作了一个map 太过频繁有几率会导致map崩溃一开始的解决方法是加读写锁后来发现效果不是太好于是使用了sync.mapvar m sync.Map //线程安全map //数据存入 m.Store("index1",1000.00) //数据取出 t ,bool := m.Load("index1") if bool{ fmt.Println(t) } //类型转换 tmp,bool := t.(float64)原创 2021-10-17 15:49:21 · 324 阅读 · 0 评论 -
GO语言:excel导入导出
引用包github.com/xuri/excelize/v2 导出func main() { f := excelize.NewFile() // 创建一个工作表 index := f.NewSheet("Sheet2") // 设置单元格的值 f.SetCellValue("Sheet1", "B2", 100) f.SetCellValue("Sheet2", "A2", "Hello world.") // 设置工作簿的默认工作表 打开默认在哪个sheet f.SetActi原创 2021-10-17 15:33:16 · 1969 阅读 · 0 评论 -
GO语言:zorm基本使用
测试环境DB:mysql8.0一、连接数据库package mainimport ( "context" "fmt" "gitee.com/chunanyong/zorm" _ "github.com/go-sql-driver/mysql")var db *zorm.DBDaovar ctx context.Contextfunc main() {}func init(){ var err error dbConfig := zorm.DataSourceConfig原创 2021-10-10 19:13:44 · 1890 阅读 · 0 评论 -
GO语言:zorm介绍
介绍go(golang)轻量级ORM,零依赖,零侵入分布式事务,支持达梦(dm),金仓(kingbase),神通(shentong),南大通用(gbase),mysql,postgresql,oracle,mssql,sqlite,clickhouse数据库.源码地址:https://gitee.com/chunanyong/zorm作者博客:https://www.jiagou.com交流QQ群:727723736 添加进入社区群聊,问题交流,技术探讨 社区微信: LAUV927 go get原创 2021-10-07 15:41:39 · 879 阅读 · 0 评论 -
GO语言:判断变量是否是指针类型
t := make([]*test, 0) pv1 := reflect.ValueOf(&t) fmt.Println(pv1.Kind()==reflect.Ptr)原创 2021-10-07 13:15:53 · 3583 阅读 · 0 评论 -
GO语言:interface{}强转string
str := fmt.Sprintf("%v", test) //强转为string原创 2021-06-19 16:01:45 · 1890 阅读 · 0 评论 -
Go语言:判断key是否存在map
//存在if _, ok := map[key]; ok {}//不存在if _, ok := map[key]; !ok {}原创 2021-06-19 16:00:11 · 467 阅读 · 0 评论 -
Nginx基础配置
今天本来想写这个的对不起太懒了下次一定原创 2021-05-23 17:28:39 · 128 阅读 · 0 评论 -
GO语言:bleve整合gojieba测试demo
1.引用包import ( "fmt" "github.com/yanyiwu/gojieba" "os" "strconv" "strings" "testing" "time" "github.com/blevesearch/bleve/v2" "github.com/blevesearch/bleve/v2/analysis/analyzer/keyword")2.初始化blevevar indexName string = "userIndex"//创建索引fu原创 2021-05-03 15:56:44 · 1214 阅读 · 0 评论 -
GO语言:工厂模式(Factory Method)
GO简单工厂由于 Go 中缺少类和继承等 OOP(面向对象) 特性, 所以无法使用 Go 来实现经典的工厂方法模式。 不过, 我们仍然能实现的基础版本.场景一个制作玩具的工厂。代码结构为了方便展示 放到了不同的文件中Toy.go定义个玩具的接口 声明共有的方法package codeInHere//定义玩具产品接口type toy interface { SetName( name string) //需要个名字 GetName() string SetUnitPrice(原创 2021-04-10 15:28:28 · 614 阅读 · 0 评论 -
GO语言:转字符串
strconv.Itoa(120) //int 转字符串原创 2021-04-10 14:24:17 · 222 阅读 · 0 评论 -
Go语言:获取随机数
r := rand.New(rand.NewSource(time.Now().UnixNano))//使用当前时间戳 生成真正的随机数字 r.Intn(2) //取二以下的正数 0,1原创 2021-04-10 14:22:32 · 1078 阅读 · 1 评论 -
GO语言:获取当前路径
获取当前路径str, _ := os.Getwd()原创 2021-04-07 08:07:51 · 1627 阅读 · 1 评论 -
GO语言:gin框架实列
Gin框架问题1.初始化/hellor := gin.Default()//初始化路由r.GET("/hello",sayhello)r.Run() //默认8080端口 ":9090" 自定义端口//sayhello方法实现func sayhello(c *gin.Context){ //以下是返回json形式 c.JSON(200,gin.H{ "message":"map数组而已", "message2":"blunt", })}2.匹配模式//原创 2021-04-07 08:00:48 · 556 阅读 · 0 评论 -
GO语言:玩下适配器(Adapter)
什么是Adapter举例:国内的电源供应是220V 然后我有一个设备是需要110V的这时候就需要一个适配器把220V转为110V 供我使用。优点1.可以让任何两个没有关联的类一起运行2、提高了类的复用3、增加了类的透明度4、有一定灵活性缺点过多地使用适配器,会让系统非常零乱,不易整体进行把握场景创造一个适配器 将电流适配成 220V 或者110V目录结构Ele (适配者)ELe在这里代表的是电流 在适配器里盘演被适配者 (Adaptee)package codeInHer原创 2021-03-28 17:31:54 · 452 阅读 · 0 评论 -
Go语言:玩玩迭代器
Iterator Pattern(迭代模式)这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式参考来源与 《图解设计模式》代码结构场景建立一个书架 放入书籍使用书架迭代器遍历书籍代码Iterator建立迭代接口package codeInHere//建立迭代接口type Iterator interface { HasNext() bool // Next() interface{}}aggregate建立一个用于遍历集合原创 2021-03-20 18:32:39 · 359 阅读 · 0 评论 -
Go语言:万物皆接口
接口在Go语言中接口是一种类型,只要实现了这个接口方法的就属于这个类型在JAVA中定义一个鸭子接口那什么是鸭子?鸭子是会嘎嘎嘎叫的鸭子可以在水里游等等。。。那反过来如果不能嘎嘎嘎叫,不能在水里游就不是鸭子在go语言中没有那么多要求只要你长得鸭子那就你可以实现我这个接口不管这个鸭子会不会叫或者是玩具鸭子只要实现了我这个接口方法就是个鸭子定义一个接口...原创 2020-03-28 14:21:03 · 486 阅读 · 0 评论 -
Go语言:聊聊结构体
GO结构体go语言中是没有类的但是go语言中可以使用结构体来定义类似与java类的结构并借此来实现面向对象结构体的定义go语言中定义结构体是使用 type 和 structtype person struct { name string age int}person 就是一个结构体 有着name和age两个属性结构体的声明 var p = person{}...原创 2020-03-28 11:07:48 · 490 阅读 · 0 评论 -
Go语言学习:聊聊Go语言中的defer
Defergo语言中 defer 会将跟随在它后面的语句延迟处理一般用来关闭链接 关闭流单个defer fmt.Println("A") defer fmt.Println("B") fmt.Println("C") //输出 A C B因为defer的关系 ,本来应该输出B的 ,被延迟到了最后多个defer fmt.Println("A") defer fmt...原创 2020-03-24 09:12:39 · 417 阅读 · 2 评论 -
Go语言学习:函数
函数定义go语言中通过关键字 func 来定义函数func 函数名(参数)返回指{函数体}无参无返回值func f1(){ fmt.Println("hello go")}有参无返回值func f2(x int){ fmt.Println("hello go")}多个同类型参数可以省略上一个或者多个func f3( x, y int,z bool){ f...原创 2020-03-23 15:45:15 · 176 阅读 · 0 评论 -
Go语言学习: new和make
new 和 make 都是用来分配内存的 var a int fmt.Println(a) var b string b = "927" fmt.Println(b) //输出 //0 //927使用基本类型系统会默认分配内存 基本类型在创建的时候就有了默认值 var a *string *a = "927" fmt.Println(a) var m ma...原创 2020-03-23 11:40:43 · 175 阅读 · 0 评论 -
GO语言学习:指针
指针go语言中的指针还是比较好理解的操作符号是 : & *& 是取地址*指针类型取地址: var str = "hello" p := &str fmt.Println(p) //输出 //0xc0000881e0实现的操作就是 把变量str的内存地址 放入到p变量中指针取值 var str = "hello" p := &...原创 2020-03-23 11:14:48 · 208 阅读 · 0 评论 -
GO语言学习:MAP
MAP的定义map是一个无序的 key-vlaue 的集合map的定义为: map[key类型]value类型map类型的变量需要使用make()函数来分配内存使用make创建: make(map[key]value,cap(初始容量) )map的长度也是可变的 var n map[string]int n = make(map[string]int ,20) var m ...原创 2020-03-23 10:36:42 · 184 阅读 · 0 评论 -
GO语言学习:切片
切片(slice)因为数组的长度是不可变的 应用起来不够灵活 所以衍生出来切片切片的长度是可变的切片声明 var s = []int{} 创建一个长度为0的切片 var s = []int{1,2,3} 创建一个 长度为3的切片 var s = make([]int,10) 使用make创建一个长度为10的切片 var s ...原创 2020-03-21 16:57:36 · 233 阅读 · 0 评论 -
GO语言学习: 数组
定义一个数组 var 数组变量名 [元素数量]元素类型 var a [3]int 定义一个int数组 长度为 3 fmt.Println(a) 输出结果为 [0 0 0] 在声明数组时,如果没有对数组进行赋值 则会为该类型的默认值 int 类型为 0 string类型为 "" 在定义的时候赋值 var a = [3]int{1,2,3} //长度...原创 2020-03-21 15:38:38 · 229 阅读 · 0 评论 -
GO学习:GO语言的关键字
GO语言的关键字: break default func interface select case defer go map struct chan else goto package switch...原创 2020-03-21 14:30:34 · 882 阅读 · 0 评论