Golang
文章平均质量分 62
无数_mirage
MMO游戏服务器 wushuripple@gmail.com
展开
-
【Golang】Go的并发和并行性解释。谁说Go不是并行语言?
偶然发现百度上有很多"师出同门"的"go是并发语言,而不是并行语言"的说法。最终我认为起点大概率是在"Rob Pike"(Go作者之一)于2012年发表的一场演讲,名为"并发不是并行"。之后则被标题党曲解为"go是并发语言,而不是并行语言"。简单说,Rob Pike 用很多"地鼠工人"(gopher)把一个"烧书"任务进行了循序渐进的并发设计,这是一个三只地鼠协同工作的设计,每个地鼠都是一个独立执行的一段程序。原创 2023-10-15 21:54:01 · 558 阅读 · 1 评论 -
【Golang】什么是内存逃逸?
在Golang中,内存逃逸指的是在函数中分配的局部变量或对象,由于其生命周期需要延长或在函数外部继续使用,导致编译器将其分配到堆区而不是栈区的情况。这种情况下,变量或对象的生命周期超出了原本的作用域,需要在堆上分配内存以保证数据的有效性。但是,如果编译器无法确定变量的声明周期是否会超出作用域,就会将其分配到堆上,以确保数据访问的有效性。当然,使用栈上的内存更具有性能,如果你特别在意这种性能的话,以下是一些。,一旦当前函数执行完毕,局部变量占用的内存也将被释放,因此以下代码无法将数组的内容传递出去。原创 2023-08-25 21:08:55 · 785 阅读 · 0 评论 -
GoLand利用plantuml生成UML类图
文章目录步骤1. 安装goplantuml2. 将goplantuml集成到GoLand3. 安装GoLand的PlantUML插件4. 安装和集成`Graphviz`GoLand内置的Diagrams不像IDEA一样强大,不支持生成类图解决方案是 利用github上的 适用于 golang 项目的 PlantUML 类图生成器:jfeliu007/goplantuml 结合Goland的PlantUML插件步骤1. 安装goplantuml执行go get github.com/jf原创 2022-03-24 17:47:24 · 8884 阅读 · 0 评论 -
goland:os.Executable()和os.Getwd()的区别以及配合goland的使用
关系如下。(不用多说了吧[doge])output是输出exe的路径,也就是os.Executable()得到的路径working directory是工作路径,也就是os.GetWd()得到的路径原创 2021-11-12 16:09:34 · 2509 阅读 · 0 评论 -
面向对象和面向过程的区别
文章目录程序设计和代码写法的区别其他为什么说Java是纯面向对象的为什么说go既是面向对象也是面向过程、或说既不是面向对象也不是面向过程?参考资料动画讲编程:C的面向过程和C++的面向对象有什么区别,大象装冰箱一个例子搞懂如何通俗易懂地举例说明「面向对象」和「面向过程」有什么区别?程序设计和代码写法的区别面向对象在程序设计上,以对象为中心去思考对象具有的行为在代码写法和表现上,函数通过对象调用,比如Person.Say("hello")。Person是对象面向过程:在代码写法上原创 2021-10-20 17:05:21 · 346 阅读 · 0 评论 -
GoLang实现HashSet
GoLang如何实现Java中的HashSet呢Java中的HashSet其实就是取的HashMap的key列,在GoLang中一样可以做到在GoLang中可以这么实现:var set = make(map[interface{}]struct{})利用空struct内存占用为0的特点,比网上其他的实现简单高效不得不说GoLang确实是挺考验开发者水平的语言,一些功能明面上没有,实际上都是支持的。???? 欢迎加入QQ 全栈开发技术交流群 – ‘300567032’,点击下方图标一键加入原创 2021-03-23 16:38:06 · 1306 阅读 · 0 评论 -
Golang的类型转换-三种转型(强转、断言、“向上造型“)
golang没有类似于java中的隐式类型转换golang中的类型转换分为强制类型转换、类型断言、以及“向上造型”向上造型这个词是取的Java中的定义,没有复杂的含义,表示将子类转为父类。在golang中达到同样的目的只需要.父结构体即可package mainimport "fmt"// 隐式类型转换和强转func t1(){ var a float32 = 5.6 var b int = 10 //fmt.Println (a * b) // -- 隐式类型转换,编译报错,不支.原创 2021-02-04 16:05:12 · 11321 阅读 · 0 评论 -
GoLang-uuid的存储方式:[16]byte如何存32个字符
今天用了下goloang的uuid包是 “github.com/satori/go.uuid”发现了下面这个奇怪的东西遍历长度和打印出的字符串长度不一样,不算短横的话,相当于用一个[16]byte存了32个字符一开始觉得挺奇怪,然后看了下源码简洁明了。因为uuid本身就是16进制的,占8位,一个byte16位,正好一劈两半,一个byte存两个uuid的字符。perfact!...原创 2020-11-19 18:04:56 · 1517 阅读 · 0 评论