疯狂编程网

  • 首页
  • 后端
    • GOLANG
    • PHP
  • 前端
  • 客户端
  • 服务器
  • AIGC
  • 开发工具
  • 代码人生
  • 关于本站
    • 联系我们
    • 免责声明
GOLANG
GOLANG

golang的内存管理

0.1、索引 https://blog.waterflow.link/articles/1663406367769 1、内存管理 内存管理是管理计算机内存的过程,在主存和磁盘之间移动进程以提高系统的整体性能。内存管理的基本要求是提供方法来根据程序的请求动态的将部分内存分配给程序,并在不需要时释放它以供重用。 程序通过将他们的内存划分为执行特定任务的不同部分来管理他们。栈和堆就是这部分中的俩个,他们管理程序的未使用的内存并将其分配给不同类型的数据。当程序不再需要这些内存的时候就会释放他们,供后续使用。 2、经典的内存…

2023年5月10日 0条评论 355点热度 0人点赞 大明 阅读全文
GOLANG

go打印hello world、go语言的注释、go语言的代码风格、go中文api文档

go打印hello world 打开自己存放go代码的项目文件夹main,在main下面新建一个test.go文件 1.在文件中输入以下代码: package main // 声明该文件所在的包,每个go文件必须有其归属的包 import "fmt" // 引入程序中所需要的包,为了使用该包中的函数 比如Println func main(){ // 程序的主函数,程序的入口 fmt.Println('hello world') // 在控制台打印输出 } 2.对源文件tes…

2023年5月10日 0条评论 310点热度 0人点赞 大明 阅读全文
GOLANG

grpc中的拦截器

0.1、索引 https://waterflow.link/articles/1665853719750 当我们编写 HTTP 应用程序时,您可以使用 HTTP 中间件包装特定于路由的应用程序处理程序,可以在执行应用程序处理程序之前和之后执行一些常见的逻辑。 我们通常使用中间件来编写跨领域组件,例如授权、日志记录、缓存等。在 gRPC 中可以使用称为拦截器的概念来实现相同的功能。 通过使用拦截器,我们可以在客户端和服务器上拦截 RPC 方法的执行。 在客户端和服务器上,都有两种类型的拦截器: UnaryInterc…

2023年5月10日 0条评论 308点热度 0人点赞 大明 阅读全文
GOLANG

golang中的接口

0.1、索引 https://waterflow.link/articles/1666171320273 1、概念 接口提供了一种指定对象行为的方法。 我们使用接口来创建多个对象可以实现的通用抽象。 Go 接口不同的原因在于它们是隐式的。 没有像 implements 这样的显式关键字来标记对象 A实现了接口B。 为了理解接口的强大,我们可以看下标准库中两个常用的接口:io.Reader 和 io.Writer。 io 包为 I/O 原语提供抽象。 在这些抽象中,io.Reader 从数据源读取数据,io.Writ…

2023年5月10日 0条评论 328点热度 0人点赞 大明 阅读全文
GOLANG

为什么 Go 不支持 []T 转换为 []interface

在 Go 中,如果 interface{} 作为函数参数的话,是可以传任意参数的,然后通过类型断言来转换。 举个例子: package main import "fmt" func foo(v interface{}) { if v1, ok1 := v.(string); ok1 { fmt.Println(v1) } else if v2, ok2 := v.(int); ok2 { fmt.Println(v2) } } func main() { foo(233) foo("6…

2023年5月10日 0条评论 322点热度 0人点赞 大明 阅读全文
GOLANG

golang中的map

0.1、索引 https://waterflow.link/articles/1666339004798 1、map的结构 map提供了键值对的无序集合,所有的键都是不重复的。在go中map是基于bmap数据结构的。在内部hash表是一个桶数组,每个桶是一个指向键值对数组的指针。每个桶里面可以保存8个元素。我们可以简化成下面的结构。 如果我们继续插入一个元素,hash键返回相同的索引,则另一个元素也会插入相同的桶中。 如果正常桶中的元素已满,还有元素继续往相同的索引插入的话,go会创建另一个包含8个元素的桶并将前一…

2023年5月10日 0条评论 295点热度 0人点赞 大明 阅读全文
GOLANG

golang的变量介绍与使用

变量 变量的使用步骤:声明、赋值、使用 package main import "fmt" func main(){ // 1.变量的声明 var age int // 2.变量的赋值 age = 18 // 3.变量的使用 fmt.Println("age = ",age) // 4.变量的声明和赋值可以合成一句 var age2 int = 19 fmt.Println(age2) /* 注意: 1.变量不可以重复定义:就是一个文件前面定义了,同文件下面的代码不能在定义了…

2023年5月10日 0条评论 277点热度 0人点赞 大明 阅读全文
GOLANG

golang垃圾回收

0.1、索引 https://waterflow.link/articles/1664943418972 文中提到的垃圾回收算法是基于go1.16之后的,让我们直接进入正题吧。 1、什么时候需要垃圾回收? Go 更喜欢在堆栈上分配内存,因此大多数内存分配最终都会在栈上。 这意味着 Go 每个 goroutine 都有一个堆栈,并且在可能的情况下,Go 会将变量分配给这个堆栈。 Go 编译器试图通过执行逃逸分析来查看对象是否被外部变量引用。 如果编译器可以确定一个变量的生命周期,它将被分配到一个堆栈中。 但是,如果变…

2023年5月10日 0条评论 303点热度 0人点赞 大明 阅读全文
GOLANG

有趣的 Go HttpClient 超时机制

hello,大家好呀,我是既写 Java 又写 Go 的小楼,在写 Go 的过程中经常对比这两种语言的特性,踩了不少坑,也发现了不少有意思的地方,今天就来聊聊 Go 自带的 HttpClient 的超时机制。 Java HttpClient 超时底层原理 在介绍 Go 的 HttpClient 超时机制之前,我们先看看 Java 是如何实现超时的。 写一个 Java 原生的 HttpClient,设置连接超时、读取超时时间分别对应到底层的方法分别是: 再追溯到 JVM 源码,发现是对系统调用的封装,其实不光是 Ja…

2023年5月10日 0条评论 273点热度 0人点赞 大明 阅读全文
GOLANG

golang的jsonrpc客户端通用写法

服务端 package main import ( "errors" "fmt" "log" "net" "net/rpc" "net/rpc/jsonrpc" "os" ) // 算数运算结构体 type Arith struct { } // 算数运算请求结构体 type ArithRequest struct { A int B int } // 算数运算响应结构体 ty…

2023年5月10日 0条评论 288点热度 0人点赞 大明 阅读全文
12345…34

近期文章

  • PHP图片裁剪函数
  • 文件同步命令rsync详解
  • go实现base64编码的四种方式
  • opencloudos安装mysql8.0
  • gearman中任务优先级

近期评论

没有评论可显示。

归档

  • 2024年3月
  • 2023年12月
  • 2023年10月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月

分类

  • GOLANG
  • iOS
  • LINUX
  • MYSQL
  • NGINX
  • PHP
  • SHELL
  • 前端
  • 客户端
  • 开发工具
  • 服务器
  • 未分类

COPYRIGHT © 2023 疯狂编程网. ALL RIGHTS RESERVED.

京ICP备2022013580号-1