文章目录GoLang之深入解析Go中Slice底层实现1.前言2.证明slice指向数组3.证明数组是值类型4.slice由来5.slice数据结构6.slice中获取一块内存地址7.从go的内存地址中构造一个slice7.1方法一7.2方法二8.make创建slice9.字面量创建slice10.nil切片11.空切片11.切片扩容12.扩容策略13.扩容后新数组or老数组?13.1老数组情况            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-11 14:31:25
                            
                                66阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            底层编程Go语言的设计包含了诸多安全策略,限制了可能导致程序运行出错的用法。编译时类型检查可以发现大多数类型不匹配的操作,例如两个字符串做减法的错误。字符串、map、slice和chan等所有的内置类型,都有严格的类型转换规则。对于无法静态检测到的错误,例如数组访问越界或使用空指针,运行时动态检测可以保证程序在遇到问题的时候立即终止并打印相关的错误信息。自动内存管理(垃圾内存自动回收)可以消除大部            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-29 19:48:02
                            
                                340阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录数组与切片切片扩容函数传参MapMap底层数据结构key的访问map的遍历遍历的随机性遍历当中发生的扩容扩容扩容触发条件条件1-扩充条件2-压实接口底层结构ifaceeface接口类型是不是nil方法接收者Channel底层结构channel的发送策略channel的接收策略channel的关闭happend-before标准库ContextContext取消timerCtxreflec            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-05 23:15:26
                            
                                155阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            互联网迅猛发展的数十年时间里,不断面领着各种新的场景与挑战,例如大数据、大规模集群计算、更复杂的网络环境、多核处理器引起对于高并发的需求,云计算,上千万行的服务器代码……那些成熟但上了年纪的语言没能为新的场景给出直接的解决方案。Go语言在这种时代背景下应运而生了。如今,Go语言就像冉冉升起的太阳耀眼夺目,又如万马奔腾,势不可挡。一门有潜力的语言需要具备诸多要素,Go语言显然都具备了。其语言的设计者            
                
         
            
            
            
            概述设计一个 web 小应用,展示静态文件服务、js 请求支持、模板输出、表单处理、Filter 中间件设计等方面的能力。(不需要数据库支持)任务要求编程 web 应用程序 cloudgo-io。 请在项目 README.MD 给出完成任务的证据!
实现内容
    1) 支持静态文件服务
    2) 支持简单 js 访问
    3) 提交表单,并输出一个表格
    4) 对 /u            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-20 17:21:29
                            
                                0阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录Go语言简介Go 是编译型语言Go的特点语法简单并发模型内存分配垃圾回收静态链接标准库工具链为并发而生的Go语言 Go语言简介Go语言不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。可以进行网络编程、系统编程、并发编程、分布式编程。具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-16 22:12:03
                            
                                76阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Go语言的前世今生一、 为什么需要一个新的语言最近十年来,C/C++在计算领域没有很好得到发展,并没有新的系统编程语言出现。对开发程度和系统效率在很多情况下不能兼得。要么执行效率高,但低效的开发和编译,如C++;要么执行低效,但拥有有效的编译,如.NET、Java;所以需要一种拥有较高效的执行速度、编译速度和开发速度的编程语言,Go就横空出世了。传统的语言比如c++,大家花费太多时间来学习如何使用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-25 17:26:41
                            
                                64阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            函数声明函数自变量为同类型可以合并类型只有输出没有输入的函数声明函数变量的使用总结 Go语言函数支持的特性包括:◇ 参数数量不固定(可变参数)。 ◇ 匿名函数及其闭包。 ◇ 函数本身作为值传递。 ◇ 函数的延迟执行。 ◇ 把函数作为接口调用声明函数声明的格式:func 函数名(参数列表) (返回参数列表){
   函数体
}
可读形式 :
func 函数名(参数1 类型1, 参数2 类型2, 参            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-01 08:53:09
                            
                                112阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ## 实现go语言setmaxprocs底层源码的步骤
为了实现go语言的setmaxprocs底层源码,首先需要了解setmaxprocs的作用和原理,然后按照以下步骤进行操作:
1. **Step 1: 了解setmaxprocs的作用和原理**
   在开始之前,我们需要了解setmaxprocs的作用。setmaxprocs函数用于设置Go程序可同时执行的最大CPU核心数。默认情况下            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-30 06:38:11
                            
                                72阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本文目录Map实现原理1、概述2、哈希碰撞2.1、拉链法2.2、开放地址法3、常用操作3.1、声明与创建3.2、获取值3.3、赋值操作3.4、key的比较性3.5、并发问题4、底层结构4.1、哈希表结构体4.2、溢出桶4.3、map重建4.4、删除原理 Map实现原理1、概述Map这一数据结构在很多语言中都存在,其查询的效率非常高,时间复杂度在O(1)的级别,其底层原理使用的是哈希表,通过计算k            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-11 23:40:30
                            
                                338阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录并发编程1.概述1.1 并行和并发1.2 Go语言并发优势2. goroutine2.1 goroutine的定义2.2 goroutine的创建和运行2.2.1 mian goroutine2.2.2 其他goroutine2.3 runtime包2.3.1 Gosched3.2.3 Goexit2.3.3 GOMAXPROCS3 channel3.1 概述3.2 channel的创建            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-18 18:49:53
                            
                                88阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。函数Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。函数定义Go语言中定义函数使用func关键字,具体格式如下:func 函数名(参数)(返回值){
    函数体
}其中:函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名(包的概念            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-21 16:20:06
                            
                                84阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、数组1.1 数组赋值给数组Go数组是值类型,因此赋值操作和函数传参数会复制整个数组的数据,例:func main() {
	a := [3]int{1, 2, 3}
	b := a
	fmt.Printf("a addr: %p, a[0] addr: %p\n", &a, &(a[0]))
	fmt.Printf("b addr: %p, b[0] addr: %p\n",            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-02 12:06:38
                            
                                24阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言本篇博客不会贴出go的源码,只会告诉你slice用法,因为我们学习一项技术主要学的是编程的思想,眼花缭乱的源码千篇一律,深入人心的思想万里挑一,博客种通过图文的方式介绍底层机制,为的是能让开发人员写出属于自己的技术,而不是生搬硬套去复制别人的代码,相信等你理解了底层原理之后,你完全可以自己写一个动态数组出来,这就是我写博客的初心!slice是什么在go语言中,如果想要使用一个连续的内存空间,你            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-10 19:31:18
                            
                                71阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            部分引用:golang的引用类型(slice,map,channel)底层实现 slicego语言中的切片,也是动态数组,切片的底层结构是一个结构体,里边包含底层数组的地址type slice struct {
    array unsafe.Pointer // 指向底层数组的指针
    len   int // 切片中元素的数量
    cap   int // array 数组的总容量            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-14 09:11:05
                            
                                174阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1、简介go的map底层是一个hash表(HashMap),表面上看map只有键值对结构,实际上在存储键值对的过程中涉及到了数组和链表。HashMap之所以高效,是因为其结合了顺序存储(数组)和链式存储(链表)两种存储结构。数组是HashMap的主干,在数组下有一个类型为链表的元素。哈希函数会将传入的key值进行哈希运算,得到一个唯一的值。go语言把生成的哈希值一分为二,比如一个key经过哈希函数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-26 15:31:20
                            
                                20阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录开发篇3.1 包第三方包管理3.2 魔鬼数字3.3 常量 & 枚举3.4 结构体3.5 运算符3.6 函数3.7 参数3.8 返回值3.9 注释通用注释要求包注释要求函数与方法注释要求变量和常量的注释要求编码注释Bug的注释带mutex的struct必须是指针receiversrecieved是值类型还是指针类型其他注释要求3.10 错误3.11 其他参数传递自定义类型的stri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-18 23:10:31
                            
                                415阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            //下面包含main函数,必须使用main包,同一个文件夹下只能有一个文件使用main包,其他使用会报错,方法就是 //新建一个文件夹,让不同的使用main包的文件,放在不同的文件夹。 //import的包一定要在程序中被使用,如果不使用编译无法通过。 //函数指定格式就是大括号这么写,不能单独把括号另起一行写。package main
import "fmt"
func main() {
	fm            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-20 10:41:17
                            
                                831阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            title: go语言实现推箱子游戏 tags: go相信大家都玩过推箱子这个游戏,本文我们就将用go语言实现一个推箱子游戏。地图构建首先我随便找了一个推箱子的关卡,并且用坐标的方式展现出来。我们可以看到其实这个地图就是个二维数组。因此我们先声明一个二维数组。const (
		W = 10
		H = 7
	)
 var GameMap = [H][W]int{}我们用二维数组存储的内容来表示不            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-27 01:23:37
                            
                                193阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ###1.先在官网下载GO ###2.选择一个适合你的OS系数进行下载 ###3.下载之后双击安装,一直往下点安装在C盘,最后完成安装 ###4.先别着急找安装的GO,我们先配置环境变量 如果你已经完成了上面的安装步骤,那么下面PATH就自动添加了变量名 下面才是我们要做的环境设置,切记一点都不能错 (1)新建变量名:GOROOT 变量值:C:\Go 变量值为就是我一开始说得安装目录 (2)新建变            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-08 17:45:02
                            
                                159阅读
                            
                                                                             
                 
                
                                
                    