Golang实现选择排序
package mainimport "fmt"func main() {var arr []intarr = []int{3, 4, 9, 6, 7, 1, 2}res := cSort(arr)fmt.Println(res) }func cSort(arr []int) []int {var tmp, tmpIndex intcount := len(arr)for i := 0; i <
package mainimport "fmt"func main() {var arr []intarr = []int{3, 4, 9, 6, 7, 1, 2}res := cSort(arr)fmt.Println(res) }func cSort(arr []int) []int {var tmp, tmpIndex intcount := len(arr)for i := 0; i <
前面几篇文章讲述了protoc 的原理,实现,及参数,这里终于要开始动手了。 准备工作安装go 1.14在一个新的目录下, 建立一个go项目go mod init github.com/kekek/protoc-gen-foo go get google.golang.org/protobuf@v1.21.0⚠️: 这里文件夹的名字及其重要,必须以protoc-gen- 开头, 比如proto-gen-foo plan 在此示例中,我们想扩展Protobuf编译器以添加方法Foo(),该方法为.proto
Golang的html/template包实现了数据驱动的模板,用于生成可对抗代码注入且安全HTML输出。html/template包提供了和text/template包相同的接口,html/template是对text/template的二次封装并增加了安全性的处理。模板渲染存在跨站脚本攻击的风险,本质上是网站将用户的输入不作转义写入到生成的页面中。若用户提交一段浏览器脚本,则会在用户页面中执行,进而产生不可预知的风险。 html/template会自动开启安全模式将需要编码的数据处理成纯文本,各种不同
文件服务器 Golang标准库net/http中提供了http.FileServer方法会返回一个使用FileSystem接口root提供文件访问服务器的HTTP处理器,可方便地实现静态文件服务器。 http.ListenAndServe(":8080", http.FileServer(http.Dir("/files/path")))http.Dir()方法会返回http.Dir类型用于将字符串路径转换为文件系统http.FileServer()方法返回的是fileHandler实例,fileHand
基准测试代码 const numbers = 10000//fmt.Sprintf func BenchmarkStringSprintf(b *testing.B) {b.ResetTimer()for i := 0; i < b.N; i++ {var str stringfor j := 0; j < numbers; j++ {str = fmt.Sprintf("%s%d", str,
PS:自行安装 Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Vs Code 快速创建 Dockerfile 文件: 1:F1 或 Ctrl+Shift+P(俗称万能键) :打开命令面板 2
服务端渲染Golang为模板操作提供了丰富的支持,嵌套模板、导入函数、表示变量、迭代数据等都很简单。若需要比CSV数据格式更复杂的电脑关系,模板可能是一个不错的解决方案。模板的另一个 应用是网站的页面渲染。 Golang内置text/template和html/template两个模板库,html/template库为HTML提供了完整的支持,包括普通变量渲染、列表渲染、对象渲染等。 text/template是Golang标准库,实现数据驱动模板以生成文本输出,可理解为一组文本按照特定格式嵌套动态嵌入另
缘起 最近阅读<<Go微服务实战>> (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 Saga模式saga模式将分布式长事务切分为一系列独立短事务 每个短事务是可通过补偿动作进行撤销的 事务动作和补动作偿都是幂等的, 允许重复执行而不会有副作用Saga由一系列的子事务“Ti”组成, 每个Ti都有对应的补偿“Ci”, 当Ti出现问题时Ci用于处理Ti执行带来的问题。可以通