zl程序教程

golang

  • 清源正本,鉴往知来,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中引用类型是否进行引用传递EP18

    清源正本,鉴往知来,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中引用类型是否进行引用传递EP18

        开篇明义,Go lang中从来就不存在所谓的“引用传递”,从来就只有一种变量传递方式,那就是值传递。因为引用传递的前提是存在“引用变量”,但是Go lang中从来就没有出现过所谓的“引用变量”,所以也就不可能存在引用传递这种变量传递的方式。    引用类型    首先,Go lang的基本数据类型是值类型,比如整数、浮点、字符串、布尔、数组及错误类型,它们本质上是原始类型,也就是不可改变的

    日期 2023-06-12 10:48:40     
  • 使用Golang实现PHP的Addslashes和Stripslashes「建议收藏」

    使用Golang实现PHP的Addslashes和Stripslashes「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君// addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。 // 预定义字符是: // 单引号(') // 双引号(") // 反斜杠(\) func Addslashes(str string) string { tmpRune := []rune{} strRune := []rune(str) for _, c

    日期 2023-06-12 10:48:40     
  • ntp服务器udp协议,golang实现NTP协议获取服务器时间[通俗易懂]

    ntp服务器udp协议,golang实现NTP协议获取服务器时间[通俗易懂]

    // file project main.gopackage mainimport (“encoding/binary”“fmt”“net”“os”“os/signal”“sync”“time”)const (NTP_SERVER_IP = “time.windows.com” /*NTP IP*/NTP_PORT_STR = “123” /*NTP专用端口号字 符串*

    日期 2023-06-12 10:48:40     
  • golang有序map_go语言发展不起来

    golang有序map_go语言发展不起来

    大家好,又见面了,我是你们的朋友全栈君。Go语言中的Map和List实现有序MapMap定义: Go 中 Map是一种无序的键值对的集合。Map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值。Map是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map是无序的,我们无法决定它的返回顺序,这是因为Map是使用链式hash表来实现的。 其他语言中的实现: 在C++

    日期 2023-06-12 10:48:40     
  • GoLang协程与通道---上

    GoLang协程与通道---上

    GoLang协程与通道--上协程(goroutine)与通道(channel)并发、并行和协程什么是协程并发和并行的差异使用 GOMAXPROCS如何用命令行指定使用的核心数量Go 协程(goroutines)和协程(coroutines)协程间的信道概念通信操作符 <-channel有缓冲和无缓冲同步问题无缓冲的channel有缓冲的Channel信号量模式实现并行的 for 循环用带缓冲

    日期 2023-06-12 10:48:40     
  • GoLang接口---中

    GoLang接口---中

    GoLang接口---中引言接口的类型断言实例演示类型判断:type-switchnil 和 non-nil空接口构建通用类型或包含不同类型变量的数组复制数据切片至空接口切片通用类型的节点数据结构接口到接口参考引言GoLang接口—上上一篇文章中,我们对接口的基本使用和底层实现做了简单的了解,本文对接口的一些使用技巧做相关陈述。接口的类型断言一个接口类型的变量 varI 中可以包含任何类型的值,必

    日期 2023-06-12 10:48:40     
  • GoLang接口---下

    GoLang接口---下

    GoLang接口---下接口与动态类型Go的动态类型动态方法调用接口的提取空接口和函数重载接口的继承Go 中的面向对象接口与动态类型Go的动态类型在经典的面向对象语言(像 C++,Java 和 C#)中数据和方法被封装为 类 的概念:类包含它们两者,并且不能剥离。Go 没有类:数据(结构体或更一般的类型)和方法是一种松耦合的正交关系。Go 中的接口跟 Java/C# 类似:都是必须提供一个指定方法

    日期 2023-06-12 10:48:40     
  • GoLang读写数据---下

    GoLang读写数据---下

    GoLang读写数据---下格式化 JSON 数据反序列化:解码任意的数据:解码数据到结构编码和解码流XML 数据格式用 Gob 传输数据Go 中的密码学格式化 JSON 数据数据结构要在网络中传输或保存到文件,就必须对其编码和解码;目前存在很多编码格式:JSON,XML,gob,Google 缓冲协议等等。Go 语言支持所有这些编码格式;在本节,我们将讨论前三种格式。结构可能包含二进制数据,如果

    日期 2023-06-12 10:48:40     
  • GoLang异常

    GoLang异常

    GoLang异常错误处理与测试错误处理定义错误用 fmt 创建错误对象运行时异常和 panic从 panic 中恢复(Recover)自定义包中的错误处理和 panicking一种用闭包处理错误的模式错误处理与测试Go 没有像 Java 和 .NET 那样的 try/catch 异常机制:不能执行抛异常操作。但是有一套 defer-panic-and-recover 机制)。Go 的设计者觉得 t

    日期 2023-06-12 10:48:40     
  • Golang的interface

    Golang的interface

    由于golang中说interface的文章太多了,很多都已经说的很细节了,所以我再说感觉也有点难。于是总结出几个关键问题,供你参考,如果能做到准确无误有理有据的回答,那么interface应该是没有问题了。问题interface底层结构有哪两种,分别是什么样子的,里面保存了哪些信息?其中tab是什么时候生成的?从别的类型转换成interface,从interface转换成别的类型,这两者的过程是

    日期 2023-06-12 10:48:40     
  • Golang的slice

    Golang的slice

    今天来说个简单的,也不简单的东西,那就是切片。slice对于golang来说那真的是一个非常常用的东西了,很多地方都会用到它,今天就来说说,slice底层是如何实现的,又有哪些坑是需要提前注意的。slice结构很多第一次接触golang的同学都会认为,数组和切片是差不多的东西,其实不是的,切片是数组的封装。 type slice struct { array unsafe.Pointer le

    日期 2023-06-12 10:48:40     
  • Golang之reflect

    Golang之reflect

    反射 —— 如果你之前学过一些别的语言,比如java可能就会了解,反射是一个传说中很厉害的操作,算是一个高级用法。而同时,很多人也会告诉你,反射是一个危险的操作,那么在golang中,反射又是怎么操作的呢?今天就来说说golang中的反射reflect。反射的定义首先问问自己,你知道什么是反射吗?如果你有一个清楚的定义,证明你已经对反射非常熟悉了。 官方的定义很官方,我就说说我的: 反射,反射,从

    日期 2023-06-12 10:48:40     
  • golang 使用 rabbitmq 延迟队列

    golang 使用 rabbitmq 延迟队列

    你在实际业务中是否有遇到过下面这样的场景:订单十分钟没有支付,自动取消用户注册成功后无任何操作,一天后自动提醒预定票之后,在出发之前的一天自动提醒用户这样类似的场景经常会发生在实际的业务中,它们总有一个共性,就是当前并不是马上触发,而是需要过一段时间才进行触发,当触发时间到达时才进行具体的执行。那么问题就来了,为了实现这样的功能,我们如何更加灵活的实现呢?为什么使用延迟队列我们以 订单十分钟过期

    日期 2023-06-12 10:48:40     
  • golang面试题(带答案)[通俗易懂]

    golang面试题(带答案)[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。 1.下面代码输出什么,为什么 //make([]T, length, capacity) s1 := []int{ 1, 2, 3} fmt.Println(s1, "哈哈") //[1 2 3] s2 := s1 fmt.Println(s1, "哈哈") //[1 2 3] for i :

    日期 2023-06-12 10:48:40     
  • Golang|造轮子之土司自动签到工具

    Golang|造轮子之土司自动签到工具

    至少我们曾经在一起过。来自:一言 var xhr = new XMLHttpRequest(); xhr.open('get', 'https://v1.hitokoto.cn/'); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { var

    日期 2023-06-12 10:48:40     
  • Go语言之Golang http请求库HttpRequest[通俗易懂]

    Go语言之Golang http请求库HttpRequest[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。Go语言HttpRequest项目源码地址: https://github.com/kirinlabs/HttpRequest主要实现功能 支持常用的GET、POST、DELETE、PUT等 GET 除了正常请求url,也可以附带”name=flyfreely&address=beijing”或者map[string]inte

    日期 2023-06-12 10:48:40     
  • Golang语言循环、指针、结构体和切片(打卡第二天)|Go主题月

    Golang语言循环、指针、结构体和切片(打卡第二天)|Go主题月

    Go 语言循环语句for循环是一个循环控制结构,可以执行指定次数的循环。for init; condition; post { } 复制init: 一般为赋值表达式,给控制变量赋初值; condition: 关系表达式或逻辑表达式,循环控制条件; post: 一般为赋值表达式,给控制变量增量或减量。 for i:=1;i<100;i++{ fmt.Println(i) } 复制for

    日期 2023-06-12 10:48:40     
  • golang下文件锁的使用[通俗易懂]

    golang下文件锁的使用[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。 前言题目是golang下文件锁的使用,但本文的目的其实是通过golang下的文件锁的使用方法,来一窥文件锁背后的机制。为什么需要文件锁 只有多线程/多进程这种并发场景下读写文件,才需要加锁, 场景1-读写并发读写并发场景下,如果不加锁,就会出现读到脏数据的情况。想象一下,读文件的进程,读到第500字节,有其它进程以覆盖写的方式向文件中写入1000字节

    日期 2023-06-12 10:48:40     
  • Golang数组去重&切片去重

    Golang数组去重&切片去重

    合并两个整型切片,返回没有重复元素的切片,有两种去重策略1. 通过双重循环来过滤重复元素(时间换空间)// 通过两重循环过滤重复元素func RemoveRepByLoop(slc []int) []int { result := []int{} // 存放结果 for i := range slc{ flag := true for j := r

    日期 2023-06-12 10:48:40     
  • 解决golang报错:imports github.com/go-sql-driver/mysql from implicitly required module;

    解决golang报错:imports github.com/go-sql-driver/mysql from implicitly required module;

    这句话的意思是,从隐式的引入模块导入的比如我使用某个第三方包,这个第三方包里面包含了mysql包我在代码里直接使用了这个mysql包,但是在go.mod里没有引入,代码里ide是不会报错的,因为能找到代码库,但是运行的时候会报错这个时候只需要显示的引入一下就可以了比如提示的go get  xxxxx包go get github.com/go-sql-driver/mysql@v1.5.0复制这个时

    日期 2023-06-12 10:48:40     
  • FFmpeg常用命令,php实例/golang实例【ffmpeg】

    FFmpeg常用命令,php实例/golang实例【ffmpeg】

    安装brew -vbrew options homebrew-ffmpeg/ffmpeg/ffmpegbrew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-chromaprintffmpeg -version命令信息ffmpeg -i options -f 视频/音频/图像/网络推流/ts切片ffmpeg -formats查看ffprobe -i xi

    日期 2023-06-12 10:48:40     
  • 如何分析Golang依赖包的各项指标能力

    如何分析Golang依赖包的各项指标能力

    文章导读在日常开发中,我们在自己的代码库中难免都会引入外部的包,或者公司内部的私有包。在引入这些包时,我们一般都不会直接引入,而是会去思考这么几个问题。该包是否符合自己的功能需求?该包是否存在安全漏洞、bug等问题?该包是否有持续的维护、更新、完善等文档和良好的生态?...... 等等上述的问题,在引入给包时,都是我们需要考虑的。而不是直接盲目的引入。既然谈到了这个问题,那我们该怎么去分析这些问题

    日期 2023-06-12 10:48:40     
  • 跟我一起学Golang从入门到精通《Go语言的注释》

    跟我一起学Golang从入门到精通《Go语言的注释》

    //Go语言的注释(comment) //介绍: //用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性 //注释是一个程序员必须要具有的良好编程习惯,将自己的思想通过注释先整理 //出来,再用代码去体现 // //Go语言中的注释类型 //Go支持C语言风格的/* */块注释,也支持C++风格的//行注释,行注释更通用,块注释 //主要用于针对包的详细说明或者屏蔽大块的代码 //1)行注

    日期 2023-06-12 10:48:40     
  • Golang框架Gin入门实战--(2)Gin路由中响应数据

    Golang框架Gin入门实战--(2)Gin路由中响应数据

    Golang框架Gin入门实战–(2)Gin路由中响应数据 c.String() c.JSON() c.JSONP() c.XML() c.HTML()package main import ( "net/http" "github.com/gin-gonic/gin" ) type Article struct { Title string

    日期 2023-06-12 10:48:40     
  • Golang(十一)TLS 相关知识(二)OpenSSL 生成证书

    Golang(十一)TLS 相关知识(二)OpenSSL 生成证书

    0. 前言接前一篇文章,上篇文章我们介绍了数字签名、数字证书等基本概念和原理本篇我们尝试自己生成证书参考文献:TLS完全指南(二):OpenSSL操作指南1. OpenSSL 简介OpenSSL 是一个开源项目,其组成主要包括三个组件: openssl:多用途的命令行工具libcrypto:加密算法库libssl:加密模块应用库,实现了ssl及tlsOpenSSL 主要用于秘钥证书管理、对称加密和

    日期 2023-06-12 10:48:40     
  • Golang(十二)TLS 相关知识(三)理解并模拟简单代理

    Golang(十二)TLS 相关知识(三)理解并模拟简单代理

    0. 前言前面的介绍我们理解了数字签名等知识,同时学习了 OpenSSL 生成私钥和证书并验证之前提过我们基于 BitTorrent 协议开发了一个 docker 镜像分发加速插件中间涉及到了配置 docker 的代理下面我们简单介绍下 Golang 的 http.transport 配置了网络代理后的网络行为并编写一个简单的代理转发,加深理解代理转发行为1. http.Transport 配置代

    日期 2023-06-12 10:48:40     
  • Golang——uint32「建议收藏」

    Golang——uint32「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 leetcode:190、191 1.uint(usigned)均是无符号整型,uint、uint64占用内存64位。 2.int带符号整型,占64位题目其实给定的是十进制var num uint32 = 43261596,计算机内存以32位补码形式存储此数,题目说颠倒此数的二进制位,十进制变为2进制:除2取余。3.取10进制数据最低位:n%10

    日期 2023-06-12 10:48:40     
  • 浅谈Golang内存泄漏

    浅谈Golang内存泄漏

    1. 何为内存泄漏#内存泄漏并不是指物理上的内存消失,而是在写程序的过程中,由于程序的设计不合理导致对之前使用的内存失去控制,无法再利用这块内存区域;短期内的内存泄漏可能看不出什么影响,但是当时间长了之后,日积月累,浪费的内存越来越多,导致可用的内存空间减少,轻则影响程序性能,严重可导致正在运行的程序突然崩溃。一般一个进程结束之后,内存会自动回收,同时也会自动回收那些被泄露的内存,当进程重新启动后

    日期 2023-06-12 10:48:40     
  • 【Golang】并发

    【Golang】并发

    不要通过共享来通信,而要通过通信来共享。Go 并发goroutinego 程(goroutine)是 go 并发的核心,它比线程要更小, 由 go Runtime 管理,运行 goroutine 只需要很少的栈空间,因此可以实现很大的并发量,在 go 中,开启一个 goroutine 只需要使用 go 关键字即可:package main import ( "fmt"

    日期 2023-06-12 10:48:40     
  • Golang: Functions

    Golang: Functions

    FunctionsReader of this blog is assumed to have some basic programming skills. So in this series, we will not get into basic things like how function works. Because it’s basically the same for every l

    日期 2023-06-12 10:48:40     
  • Golang: Control structures

    Golang: Control structures

    Control structuresTaken from Effective Go:The control structures of Go are related to those of C but differ in important ways. There is no do or while loop, only a slightly generalized for; switch is

    日期 2023-06-12 10:48:40