golang

Go

手撸golang 仿spring ioc/aop 之10 增强1

91 0

手撸golang 仿spring ioc/aop 之10 增强1 缘起 最近阅读 [Spring Boot技术内幕: 架构设计与实现原理] (朱智胜 , 2020.6) 本系列笔记拟采用golang练习之 Talk is cheap, show me the code. Spring Spring的主要特性: 1. 控制反转(Inversion of Control, IoC) 2. 面向容器 3. 面向切面(AspectOriented Programming, AOP)源码gitee地址: https

Go

【博客大赛】浅析go切片与排序

36 0

切片是Go语言中引入的用于在大多数场合替代数组的语法元素。切片是一种长度可变的同类型元素序列,它原则上不支持存储不同类型的元素,当然了作为打工人是非常清楚“原则上”的潜台词就是“某种情况下允许” special := []interface{}{“hello go”, 2021, 4.15} 这种允许的情况有机会我们另外讨论,这个不是本次的讨论范围,本文就事论事,还不至于深入到原理。 正所谓有序列的地方就有排序的需求。在各种排序算法都已经成熟的今天,我们完全可以针对特定元素类型的切片手写排序函数/方法,但

Go

[Go]解决go-smtp发送内容乱码和发送html邮件不解析

171 0

使用github.com/emersion/go-smtp , 通过smtp发送通知邮件内容加上html代码的内容后 , 在一些邮箱里会被原样展示 , 并没有展示成html , 原因是没有加Content-Type , 加上之后就可以了tools/smtp.gopackage toolsimport ("encoding/base64""github.com/emersion/go-sasl""github.com/emersion/go-smtp""strings")func SendSmtp(serv

Go

go语言的时间获取

21 0

该文可以快速在Go语言中获得时间的计算。在Go中获取时间如何获取当前时间now := time.Now() fmt.Printf("current time is :%s", now)current time is :2009-11-10 23:00:00 +0000 UTC m=+0.000000001如何获取UNIX Timestampcur_time := time.Now().Unix() fmt.Printf("current unix timestamp is :%v\n", cur_time

Go

go语言中container容器数据结构heap、list、ring

53 0

go语言中container容器数据结构heap、list、ringheap堆的使用:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576package main import ( "container/heap" "fmt") type IntHeap []in

Go

go语言sync包的学习(Mutex、WaitGroup、Cond)

53 0

go语言sync包的学习(Mutex、WaitGroup、Cond) 2345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911

Go

Go语言proto使用入门

102 0

Go语言proto使用入门 环境安装 protoc安装protoc是用于编译proto文件的工具scoop安装 scoop bucket add extras //添加额外的仓库 scoop install protobuf //安装Protobuf手动安装 可以从ProtoBuf仓库中下载相关文件安装 Golang支持安装protoc可以将proto模板编译成多种语言,但是默认不支持go,需要额外安装插件go get -u github.com/golang/proto

Go

go语言 defer详解

40 0

每个goroutine都维护一个自己的defer链表。 新注册的defer会被添加到链表头。 defer链表执行时,从链表头开始执行。所以表现出倒叙执行。 函数如果注册了defer函数,编译器会在代码底部插入deferreturn函数。 函数执行到deferreturn时,会根据defer结构体中的字段判断当前链表头的defer是不是自己注册的,是则执行并删除,反之,代表当前函数注册的defer已经执行完了,函数结束。 go1.12之前(含)使用上述方法执行defer,有一下几个问题:_defer结构体在