随笔分类 -  golang

摘要:openwechat golang版个人微信号API, 类似开发公众号一样,开发个人微信号 使用前提 golang版本大于等于1.11 安装 go get go get github.com/eatMoreApple/openwechat 快速开始 登录微信 package main import 阅读全文
posted @ 2021-04-24 17:29 Ivy丶 阅读(3145) 评论(0) 推荐(0)
摘要:Gin框架集成封装WebSocket gin默认没有集成websocket,我们借用github.com/gorilla/websocket这个库来对gin进行封装 封装Handler func WebSocketHandlerFunc(handler func(ctx *gin.Context, 阅读全文
posted @ 2021-01-04 16:04 Ivy丶 阅读(923) 评论(0) 推荐(0)
摘要:GOLANG操作rabbitmq 简单模式 一个生产者对应一个消费者!!! 生产者 package main import ( "fmt" "github.com/streadway/amqp" "log" ) func main() { url := "amqp://guest:guest@loc 阅读全文
posted @ 2020-12-28 15:36 Ivy丶 阅读(696) 评论(0) 推荐(0)
摘要:Ginrest的简单实用 ginrest是我写的一个关于gin框架的辅助插件,它可以帮助你在开发中省去一些冗余的步骤 安装 go get github.com/Ivy1996-encode/ginrest 原生gin中使用 package main import ( "github.com/Ivy1 阅读全文
posted @ 2020-11-09 10:54 Ivy丶 阅读(655) 评论(0) 推荐(0)
摘要:用python和go实现图片里藏图片的效果 python import cv2 import numpy as np def encode_image(show_image_path, hide_image_path, out_image_name): '''自动计算代码''' show_image 阅读全文
posted @ 2020-10-17 21:56 Ivy丶 阅读(360) 评论(0) 推荐(0)
摘要:看这篇:go反射优化 阅读全文
posted @ 2020-10-17 14:54 Ivy丶 阅读(111) 评论(0) 推荐(0)
摘要:package main import ( "image" "image/color" "image/gif" "image/jpeg" "image/png" "os" "strings" ) func main() { imagePath := "你图片的名字" file, err := os. 阅读全文
posted @ 2020-10-16 22:09 Ivy丶 阅读(722) 评论(0) 推荐(0)
摘要:package main import ( "encoding/json" "github.com/Unknwon/goconfig" "gopkg.in/gomail.v2" "log" "net/http" "net/url" "regexp" ) // 一些必须的配置 type Config 阅读全文
posted @ 2020-09-17 15:23 Ivy丶 阅读(674) 评论(0) 推荐(0)
摘要:go Context 如何在一个goroutine中去通知其他的goroutine退出任务 package main import ( "context" "fmt" "time" ) func test1(ctx context.Context) { Block: for { select { c 阅读全文
posted @ 2020-07-24 11:02 Ivy丶 阅读(307) 评论(0) 推荐(0)
摘要:golang中使用数据校验功能 安装第三方模块 go get gopkg.in/go-playground/validator.v9 基本使用 package main import ( "fmt" "gopkg.in/go-playground/validator.v9" ) type User 阅读全文
posted @ 2020-07-22 16:34 Ivy丶 阅读(1620) 评论(0) 推荐(0)
摘要:goland中json的序列化和反序列化 转换规则 golang中提供了标准库来实现了json的处理,其对应的转换规则如下 golang json bool Boolean int float Number string string struct object array slice array 阅读全文
posted @ 2020-07-22 11:19 Ivy丶 阅读(748) 评论(0) 推荐(0)
摘要:接口断言 因为空接口 interface{}没有定义任何函数,因此 Go 中所有类型都实现了空接口。当一个函数的形参是interface{},那么在函数中,需要对形参进行断言,从而得到它的真实类型。 语法格式: 示例代码: 断言其实还有另一种形式,就是用在利用 switch语句判断接口的类型。每一个 阅读全文
posted @ 2020-04-26 13:36 Ivy丶 阅读(1657) 评论(0) 推荐(0)
摘要:反射reflect 一、引入 先看官方Doc中Rob Pike给出的关于反射的定义: 维基百科中的定义: 不同语言的反射模型不尽相同,有些语言还不支持反射。《Go 语言圣经》中是这样定义反射的: Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具 阅读全文
posted @ 2020-04-26 10:10 Ivy丶 阅读(314) 评论(0) 推荐(0)
摘要:gorm 的基本使用 ×× http://gorm.book.jasperxu.com/ ×× 官方文档 安装 连接mysql gorm连接mysql依赖mysql驱动,连接前需安装mysql驱动 单独连接示例 为了确保项目的完整进行,当项目初始化的时候,我们需要确保数据库连接正常,当数据库连接出错 阅读全文
posted @ 2020-04-20 12:52 Ivy丶 阅读(966) 评论(0) 推荐(0)
摘要:go语言channel go语言提供了goroutine来实现并发,go语言也提供了channel来实现并发事件之间的通信。 传统的编程语言通过共享内存来实现通信,当多个线程同时操作一个共享变量的时候,为了使程序达到预期的目的,可能会对变量加锁,这样就会使并发的程序等待,造成程序局部串行。而go的c 阅读全文
posted @ 2020-04-08 13:41 Ivy丶 阅读(169) 评论(0) 推荐(0)
摘要:Go语言goroutine 在别的语言里想要在一个程序中实现多任务,如python,python实现多任务可以使用多进程、多线程、携程。但多进程占用资源,多线程无法发挥多核的优势(GIL),python的协程是单线程的,必须等一个任务作出让步,另一个任务才能执行,如果其中一个任务阻塞住,让不出cpu 阅读全文
posted @ 2020-04-08 12:21 Ivy丶 阅读(217) 评论(0) 推荐(0)
摘要:go语言的接口interface go语言的interface是一种类型,它是一个或多个方法的集合,只要实现了interface中定义的方法,那么就是该interface类型 如: 假如我们定义只要会 叫的鸟都是鸭子 注意:如果gaga方法是使用 bird(指针接受者)来接受的,那么main函数中的 阅读全文
posted @ 2020-04-07 18:16 Ivy丶 阅读(138) 评论(0) 推荐(0)
摘要:go语言map go语言的map是一个key value的数据结构,它是go提供的映射关系的容器,内部使用hash实现。map是引用类型,必须初始化才能使用。 map的定义 空的map(nil)没有申请内存空间的不可以直接使用 可以使用make来声明一个申请内存的空map,此时的map可以直接被使用 阅读全文
posted @ 2020-04-07 17:30 Ivy丶 阅读(285) 评论(0) 推荐(0)
摘要:go语言切片 go语言的数组的长度是固定的,所以在某些场景下数组存在着它的局限性 go语言切片的存在就解决了数组长度局限的问题,切片可以看做一个可以自动扩容的数组,但是它跟数组还是有着区别。 切片的声明和舒适化 切片和数组 go的切片顶层指向的是数组,切片只是数组的一种引用形式。当数组的值发生了改变 阅读全文
posted @ 2020-04-06 21:27 Ivy丶 阅读(1197) 评论(0) 推荐(0)
摘要:go 语言数组 go语言的数组只能存储同一种数据类型,数组必须制定它的数据的存储类型和存储数据的长度。 声明数组 golang package main import "fmt" func main() { // 零值声明 var list1 [3]int fmt.Println(list1) // 阅读全文
posted @ 2020-04-06 20:04 Ivy丶 阅读(405) 评论(0) 推荐(0)