golang

Go

修改文件夹下面所有.jpg文件名demo ->欢迎加入微信交流群一起交流学习go

37 0

go 小白一枚,建了一个关于go的微信交流群 欢迎大家加入,加我微信拉群 微信号:XU1014129578 暗号 :gogogo 朋友想把文件夹中的图片名称加上当前文件夹名的前缀,文件数量有点大,所以找我帮忙。 网上找了一段代码(如:GetAllfiles() ) 修修改改搞定了... package mainimport ("fmt""io/ioutil""os""strings" )func GetAllFiles(dirPath string) (files []string, err error)

Go

手撸golang GO与微服务 Saga模式之6

79 0

缘起最近阅读<<Go微服务实战>> (刘金亮, 2021.1)本系列笔记拟采用golang练习之Saga模式saga模式将分布式长事务切分为一系列独立短事务每个短事务是可通过补偿动作进行撤销的事务动作和补动作偿都是幂等的, 允许重复执行而不会有副作用Saga由一系列的子事务“Ti”组成, 每个Ti都有对应的补偿“Ci”, 当Ti出现问题时Ci用于处理Ti执行带来的问题。可以通过下面的两

Go

手撸golang GO与微服务 Saga模式之4

38 0

缘起 最近阅读<<Go微服务实战>> (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 Saga模式saga模式将分布式长事务切分为一系列独立短事务 每个短事务是可通过补偿动作进行撤销的 事务动作和补动作偿都是幂等的, 允许重复执行而不会有副作用Saga由一系列的子事务“Ti”组成, 每个Ti都有对应的补偿“Ci”, 当Ti出现问题时Ci用于处理Ti执行带来的问题。可以通

Go

go语言gc实现、触发机制

122 0

算法: 标记-清除:从根变量开始遍历所有引用的对象,引用的对象标记为"被引用",没有被标记的进行回收。优点:解决了引用计数的缺点(不能很好的处理循环引用,而且实时维护引用计数,有也一定的代价。) 缺点:需要STW,即要暂时停掉程序运行。 代表语言:Golang(其采用三色标记法)stop the world 是gc的最大性能问题,对于gc而言,需要停止所有的内存变化,即停止所有的goroutine,等待gc结束之后才恢复。 触发 阈值:默认内存扩大一倍,启动gc 定期:默认2min触发一次gc,src/r

Go

关于面试

29 0

语言:1,熟练掌握html5,css3,javascript,ajax2,掌握PHP、java、python中至少一种web开发语言(不少公司都有特定需求吧,奇虎还招golang)3,框架/库:MooTools,YUI,Angular,jQuery,Dojo.4,UI框架:BootStrap,Foundation,Semantic UI,Kendo5,CSS制作工具/编译器:SaaS/LESS6,JavaScript服务端运行时:Node.js,Ringo7,JS模块化规范:AMD,CMD,CommonJ

Go

记一次无类型常量的思考

45 0

常量可以是有 类型 的也可以是无类型的。字面值常量, true , false , iota 以及一些仅包含无类型的恒定操作数的 常量表达式 是无类型的。func main() {// 无类型常量: 没有显示或者隐式声明其类型的常量,在一些特定的场景下编译器会自动赋予合适的类型// 如果操作的双方都是没有声明类型的话,可以进行操作fmt.Println('n' / 2.5) // 其中rune类型的基础类型是int32,却能与flaot64 进行除操作(只是看起来的 类型,实际是无类型)c := 'b'

Go

Slice

39 0

slice的预留分配空间 通过 append 对数组进行追加的时候,并不是会直接分配内存扩容。而是会先检查是否存在预留分配空间,有的话可以直接往里写入,当预留分配空间使用完后,会进行扩容。 事实上很难预估数组使用的最大长度,所以golang遵循扩容规则:元素小于1024,则直接double,直至满足 元素大于1024,则单次扩容1.25倍,即四分之一,直至满足slice的切片机制 切片[]int和数组[3]int,是不同的数据结构 在切片中,包含指向数组的指针,当前长度及容量。在没有扩容的前提下,对切片进

Go

protoc go插件编写之三 (自定义选项)

353 0

选项 [options] .proto文件中的各个声明【message呀,service呀等等】可以使用许多选项进行注释。选项不会改变声明的整体含义,但可能会影响在特定上下文中处理声明的方式。 可用选项的完整列表在google/protobuf/descriptor.proto中定义。 一些选项是文件级别的, 只能在顶级内容区, 而不能在任何 message, 或enum,或service中定义。一些是消息级别的, 只能定义在message内, 一些是字段级别的,只能定义在filed内。选项也可以写在枚举