avatar
文章
163
标签
197
分类
10
首页
归档
分类
标签
书单
关于
Deng的博客
首页
归档
分类
标签
书单
关于

Deng的博客

Go进阶 - 内存逃逸
发表于2021-02-09|AI前沿
make和new
发表于2021-02-08|Go进阶
1.make和new 01.make和new 1.1 make和new比较 new 和 make 是两个内置函数,主要用来创建并分配类型的内存。 make和new区别 make 关键字的作用是创建于 slice、map 和 channel 等内置的数据结构 new 的作用是为类型申请一片内存空间,并返回指向这片内存的指针 123456789101112package mainimport "fmt"func main() { a := make([]int, 3, 10) // 切片长度为 1,预留空间长度为 10 a = append(a,1) fmt.Printf("%v--%T \n",a,a) // [0 0 0]--[]int 值----切片本身 var b = new([]int) //b = b.append(b,2) // 返回的是内存指针,所以不能直接 append *b = append(*b, 3) // 必须通过 * 指针取值,才能进行 app...
Go进阶 - make和new
发表于2021-02-08|AI前沿
pointer
发表于2021-02-07|Go进阶
01.pointer 01.pointer 1.1 什么是pointer 在Go里面pointer就是1种可以把内存地址存储起来的数据类型。 我们使用pointer数据类型的变量可以记录下另1个变量的内存地址,方便我们修改这变量的值。 只需要记住以下几点: &变量名: 获取变量的内存地址 *pointor:通过指针类型的变量,获取该指针指向的值 12345678910package mainimport "fmt"func main() { name := "张三" p1 := &name // &变量名: 获取变量的内存地址 p2 := *&name // *pointor:通过指针类型的变量,获取该指针指向的值 fmt.Println(name,p1,p2) // 张三 0xc000088230 张三} 1.2 为什么Go中使用了指针? 因为指针可以帮助我们节省内存,我们知道在程序运行时值类型的变量被赋值之后会对值进行重新拷贝 如果我们每...
Go进阶 - pointer
发表于2021-02-07|AI前沿
interface
发表于2021-02-05|Go进阶
1.interface 01.interface 1.1 interface作用 接口是 Go 语言的重要组成部分,它在 Go 语言中通过一组方法指定了一个对象的行为 接口 interface 的引入能够让我们在 Go 语言更好地组织并写出易于测试的代码 golang中的接口分为 1带方法的接口和空接口 iface:表示带方法的接口 eface:表示空接口 1.2 eface空接口 空接口eface结构比较简单,由两个属性构成 一个是类型信息_type,一个是数据信息 其数据结构声明如下: 1234type eface struct { _type *_type data unsafe.Pointer} 其中_type是GO语言中所有类型的公共描述,Go语言几乎所有的数据结构都可以抽象成 _type,是所有类型的公共描述 type负责决定data应该如何解释和操作 type的结构代码如下: 12345678910111213141516type _type struct { size uintptr ...
Go进阶 - interface
发表于2021-02-05|AI前沿
Channel
发表于2021-01-30|Go进阶
1.channel 01.channel的整体结构图 1.1 channel结构图 channel本质是一个hchan这个结构体 12345678type hchan struct { buf unsafe.Pointer // points to an array of dataqsiz elements sendx uint // send index recvx uint // receive index recvq waitq // list of recv waiters sendq waitq // list of send waiters lock mutex} 简单说明: buf是有缓冲的channel所特有的结构,用来存储缓存数据,是个循环链表 sendx 123和 recvx 123用于记录 buf 123456789 这个循环链表中的~发送或者接收的~index - `recvx`和`sendx`是根据循环链表`buf`的变动而改变的- ...
Go进阶 - Channel
发表于2021-01-30|AI前沿
数组与切片
发表于2021-01-25|Go进阶
1.数组与切片 01.数组 1.1 数组 数组是一种非常有用的数据结构,因为其占用的内存是连续分配的。 由于内存连续,CPU能把正在使用的数据缓存更久的时间。 而且内存连续很容易计算索引,可以快速迭代数组里的所有元素。 golang中声明数组需要告诉数组长度,以及存放数据类型 一旦初始化成功,那么存储的数据类型和数组长度就都不能改变了 xxxxxxxxxx package mainimport "fmt"​func main() { SliceShallowCopy() SliceDeepCopy()}​func SliceShallowCopy() { src := []byte {1,2,3,4,5,6} dst := src fmt.Println(“浅拷贝原始数据”,src)   // [1 2 3 4 5 6] dst[0]=10 // 修改拷贝数据,原始数据会以前跟着改变 fmt.Println(“after modify[src]:”,src)  // [10 2 3 4 5 6]}​func S...
1…131415…17
avatar
Evan Deng
文章
163
标签
197
分类
10
Follow Me
公告
This is my Blog
最新文章
Firecrawl 发布 anydoc:Rust 驱动的文档转 Markdown 新利器,支持 Office/PDF/EPUB 一键转换2026-08-06
OpenAI Astra 发布:内部版本就攻克10个长期开放的数学难题,揭开下一代模型面纱2026-08-04
OpenAI Astra 发布:内部版本就攻克10个长期开放的数学难题,揭开下一代模型面纱 2026-08-04
Gemini 3.6 Flash发布:Google的AI编程新引擎,DeepSWE跑分49%的性价比之王2026-08-03
Gemini 3.6 Flash发布:Google的AI编程新引擎,DeepSWE跑分49%的性价比之王 2026-08-03
分类
  • AI前沿97
  • GitHub开源1
  • Go基础9
  • Go常用库20
  • Go爬虫2
  • Go设计模式6
  • Go进阶19
  • Tech前沿6
标签
Gemini-3 MIT 切片 数组与切片 锁原理 mod GPT-5.6后时代 的三级模型战略与编码能力新标 常用库介绍 概述 Crawl4AI pointer 百万 Image-Generation 手动实现并发爬取多个 从诞生到 登顶 联合训练 OpenClaw 字符串 爬虫 interface 代码生成 工具分享 开源 GLM-5 Anthropic 内部版本就攻克 编程语言 AI网关 Map GPT-5 Claude Strconv Kimi K2.7-Code Channel 大语言模型 工厂方法模式 数组 AI推理
归档
  • 八月 2026 8
  • 七月 2026 43
  • 六月 2026 9
  • 七月 2025 1
  • 四月 2024 4
  • 十月 2023 2
  • 六月 2022 16
  • 五月 2022 26
网站信息
文章数目 :
163
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By Evan Deng框架 Hexo 6.3.0|主题 Butterfly 5.6.2