Golang 知识点总结】的更多相关文章

Golang 知识点总结 目录 [−] 各种类型复制的时候的花费 可使用内建函数的类型 (len.cap.close.delete.make) 内建容器类型的值比较 组合类型T{...}的值比较 零值是nil的类型 编译时被执行的函数 不能被寻址的值 不支持比较的类型 可命名的源代码元素 命名的源代码元素可以使用 ()分组声明 可以在函数内外声明的源代码元素 可以返回一个可选bool返回值的表达式 使用channel机制永远阻塞当前goroutine的方法 连接字符串的几种方法 原文: Gola…
1. Golang 1.1 golang知识点大纲 1.2 指针 1.3 Golang使用validator进行数据校验及自定义翻译器 1.4 Golang GC(垃圾回收机制) 2.框架 2.1 GIN 待定 3. ORM 3.1 GORM 3.1.1 GORM基本使用 4. 微服务 4.1 GRPC 待定 4.2 kong 待定 4.3 Istio 待定…
golang 代码不需要分号; 但是又会自己在底层增加;号 ,所以 golang的{左花括号必须在代码的最后一行,而不能在新的一行; golang 代码组织里需要注意 vendor 和 internal 的特殊用法,internal 不会主动出现在godoc中,但是可以手动输入路径; golang 的time.Format(string)string 方法,参数必须是:2006-01-02 15:04:05 而不能是自定义的年月日时间,虽说方便记忆,但是你Format注释就不能说明白了么? 还要…
获取url中的参数及输出到页面的几种方式 func SayHello(w http.ResponseWriter, req *http.Request) { req.Method //获取url的方法 GET or POST request := req.URL.Query() //获取url中的所有参数(get或post) io.WriteString(w, req.FormValue("id")) //获取url的id参数(常用) w.Write([]])) //发送到HTTP客户…
数组 数组的声明 var arrayName [arraySize]dataType eg: var array1 [5]int 在声明数组时,必须指定数组名,数组长度和数组元素的类型. 数组的初始化 当数组定义好以后,如果没有给数组元素指定值,则所有元素被自动初始化为类型所对应的零值 var array1 [5]int // [0 0 0 0 0] 变量的类型零值 在Go语言中,当一个变量被定义为某一种类型后,Go语言会自动初始化其值为零(Zero Value) 零值并不等于空值,而是当变量被…
2.冒泡排序(二维数组使用): func main() { i := 1 MYLABEL: for { i++ if i > 3 { break MYLABEL } } fmt.Println("MYLABEL") } // Label名称随意,必需写在for循环前面 2.冒泡排序(数组使用): func main() { var arr [6]int = [6]int{1, 9, 8, 500, 45, 2} arrSize := len(arr) for i := 0; i…
鸿渐于陆 本想着写满十八式,但按照目前的进度来看,是很难凑够十八式了.所以还是那句话,量力而行,适可而止.能写多少就写多少,我没法保证看完这本golang脱口秀,一定能成为golang大拿.但入了门,能自力更生开始写golang段子应该差不多. 技术这点事,说破天就是熟练工.一个知识点,一次不懂,就看两遍.两次不行,就来三遍.熟能生巧,巧能夺天.多少个大牛也是从一行一行代码中走过来的.毕竟像李一男这样开挂的技术太少了,绝大多数的coder生涯还是依靠代码量堆砌起来的. 我还在上大学的时候,计算机…
说起Golang(后面统称为Go),就想到他的高并发特性,在深入一些就是 Goroutine.在大家被它优雅的语法和简洁的代码实现的高并发程序所折服时,其实C#/.NET也可以很容易的做到.今天我们来参照Go,来用C#实现它所采用的的CSP并发模型. CSP(Communicating sequential processes) 这东西我一开始以为很简单,后面差了资料发现它独树一帜,自己是一门语言,也是一套理论.这边我不深入的对它做过多的见解,我怕耽误大家=_=,大家可以看看wiki. wiki…
    golang团队在sync中提供了很多的原子操作函数,将原子操作转向由单独一个包提供,而不是像Java那样提供各种累,确实上手得更加简单.但是golang原生提供的并发操作没有Java来得丰富,或者庞大(这里并不想展开语言相杀),只是笔者在练习的时候,想试着用golang实现类似Java中的valatile的语义功能,却发现golang没有提供类似的关键字,这个时候只能借助sync和sync/atmoic的同步语句来实现对应的功能.事实是,如果是借助锁的同步方式来实现对应的valatil…
背景 去面试的时候遇到一道和 string 相关的题目,记录一下用到的知识点.题目如下: s:="123" ps:=&s b:=[]byte(s) pb:=&b s+="4" *ps+="5" (*pb)[1] = 0 (*pb)[2] = 4 fmt.Printf("%+v\n",*ps) fmt.Printf("%+v\n",*pb) 问以上代码的输出是什么. 分析 很容易可以看出 s…
今天和大家聊聊golang中怎么使用rpc,rpc数据传输会涉及到gob编码,所以先讲讲gob,别担心,就算你完全没有接触过gob与rpc,只要知道rpc的中文是远程过程调用,剩下的我都能给你讲明白(带你入门不包你精通)! 一.数据结构编码之gob gob全称为:Go binary Golang自带的一个数据结构序列化编码/解码工具,也就是说gob可以讲go中的一个数据结构序列化成某种东西,还能反序列化!序列化成啥我们后面来看,不管是变成一个字符串,变成二进制流,变成啥先不管,反正作用就是序列化…
GO语言的进阶之路-Golang高级数据结构定义 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们之前学习过Golang的基本数据类型,字符串和byte,以及rune也有所了解,但是说起高级点的数据类型,可能我们还是不太清楚,那么今天就跟着我脚步一起学习一下这些高级数据类型数据吧.相信有部分人可能学习过Python,那么我这篇博客基本上不用看了,因为对你来说会觉得so easy.因为太多的相似之处了,只是写法不同.本章主要介绍数组(array),切片(scice),字典(m…
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也是有过之而无不及,甚至可以说远远的甩python几条街.学过python基础或是shell的童鞋应该知道我们在定义一个变量的时候是不需要指定其所属数据类型的,直接让其等于一个变量即可,他们的解释器会自动识别你定义的是个整数,浮点数,字符串,还是数组或是函数.而Golang在定义每个变量的时候都被指定…
前言 这两周学了很多东西,还把golang语言基本掌握了,收获还是挺多的.在做安全的过程中,有很多需要定时执行的任务,比如抓取主机数量,端口数据等,这都逃不开linux中的crontab命令,今天分享一下crontab这个小知识点.提醒大家一下,在大公司服务器中,部署的基本上都是CentOS,所以大家想学CentOS上的操作,推荐大家看一下<鸟哥私房菜> 命令说明 crontab 命令可以在固定的间隔时间执行指定的系统指令或 shell script脚本.时间间隔的单位可以是分钟.小时.日.月…
引言 最近需要对接一个接口,人家提供了两种调用方式,第一种是基于IE浏览器的Active,第二种是动态链接库dll.我们公司的产品不支持IE,所以只能通过调用dll来完成了. 之前我已经用Java实现了这个代理,但是感觉很笨重,依赖于容器还有JVM一大堆,这个代理要安装在客户端电脑上,基于Http协议来调用,然后透传参数调用dll,将返回的结果转换为Json. 如今我想用Golang来实现这个功能,它不依赖特定的运行环境,而且天然高并发,适合做网络通信相关,结合了Java的高效和C的高性能. 一…
之前做过一个深交所股票数据的接存储软件,消息的协议是这样. 协议文档在这  https://wenku.baidu.com/view/d102cd0b4a73f242336c1eb91a37f111f1850df2.html 由于socket接受来的数据会出现粘包或者半包的情况.所以要进行拆包处理代码是这样的,但是无论网络状态是否稳定都会出现丢包的情况. private RecMessage TryReadAmessage(ref byte[] bytes) { ) return null; )…
反射的知识点比较晦涩,后期会对此知识点展开深入的分析及示例代码展示 反射可达大提高程序的灵活性,使得inferface{}有更大的发挥余地 反射使用TypeOf和ValueOf函数从接口中获取目标对象信息:字段属性,方法信息 package main import ( "fmt" "reflect" ) type User struct { //定义一个结构类型 Id int Name string Age int } func (u User) Hello() {…
前言 Golang中有两种类型的锁,Mutex (互斥锁)和RWMutex(读写锁)对于这两种锁的使用这里就不多说了,本文主要侧重于从源码的角度分析这两种锁的具体实现. 引子问题 我一般喜欢带着问题去看源码.那么对于读写锁,你是否有这样的问题,为什么可以有多个读锁?有没有可能出现有协程一直无法获取到写锁的情况?带着你的疑问来往下看看,具体这个锁是如何实现的. 如果你自己想看,我给出阅读的一个思路,可以先看读写锁,因为读写锁的实现依赖于互斥锁,并且读写锁比较简单一些,然后整理思路之后再去想一下实际…
前言 在我前面一篇文章Golang受欢迎的原因中已经提到,Golang是在语言层面(runtime)就支持了并发模型.那么作为编程人员,我们在实践Golang的并发编程时,又有什么需要注意的点呢?下面我会跟大家详细的介绍一些在实际生产编程中很容易踩坑的知识点. CSP 在介绍Golang的并发实践前,有必要先介绍简单介绍一下CSP理论.CSP,全称是Communicating sequential processes,翻译为通信顺序进程,又翻译为交换消息的顺序程序,用来描述并发性系统的交互模式.…
目录 整体结构说明 protobuf2文件 golang客户端 目录结构 生成pb.go文件 main.go util.go java服务端 目录结构 pom.xml application.yml NettyConfig.java 生成Helloworld.java SocketServerHandler.java NettyServerListener.java Application.java 测试 因为设备的通信协议准备采用protobuf,所以准备这篇protobuf的使用入门,gol…
目录 Golang 接口与反射知识要点 1. 接口类型变量 2. 类型断言 3. 鸭子类型 4. 反射机制 5. reflect 包 TypeOf().ValueOf() Type().Kind() Interface() 6. 反射对象的可设置性 SetXXX(), CanSet() Elem() 7. Struct 的反射 NumField(), Type.Field() Value.Field() 参考文件 Golang 接口与反射知识要点 这篇文章以 Go 官方经典博客 The Laws…
前言 interface(即接口),是Go语言中一个重要的概念和知识点,而功能强大的reflect正是基于interface.本文即是对Go语言中的interface和reflect基础概念和用法的一次梳理,也算是我阶段学习的总结,以期温故而知新. interface(接口) 定义 在Go语言中,如果自定义类型(比如struct)实现了某个interface中的所有方法,那么就可以说这个类型实现了这个接口.接口可如下定义: type 接口名称 interface { method1(参数列表)…
Golang核心编程: 区块链研发工程师(分布式账本技术,互联网数据库技术,特点是去中心化) Go服务器端/游戏软件工程师(现在主流是C C++,处理日志,数据打包,文件处理,美团后台流量支撑,处理大并发;游戏后台数据通道) Golang分布式/云计算软件工程师(盛大云,cdn,京东消息推送系统,分布式文件处理) Golang的应用领域: 区块链应用 后端服务器应用:主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容器,按条件分流;游戏服务器(通讯,逻辑,数据存储) 云计算/云服务…
写在前面 本期内容是承接上期已经做好了登陆界面来写的,不过本期是以golang为主,可能需要大家把最基本的语法结构熟悉一下:菜鸟教程.这样的话方便展开,自然而然的,本篇也是直接实战为主.这次需要依赖mysql,这个必须安装,redis最好也安装一下,以后会用到. 启动一个go项目 这里我打算启动一个go的web application,那么很多人的话都会自己从头开始,不过这的确有点麻烦,网上其实很多大佬写了一些脚手架,这里我打算直接使用bydmm大佬的singo项目来开发,可以看他的B站空间的系…
记录的是 本地编译好了再创建容器镜像的方法 ,这样子生成的镜像文件比较小,方便分发部署 win 平台需要设置golang交叉编译 生成linux可执行文件 CMD下: Set GOOS="linux" Set GOARCH="amd64" PowerShell下: $env:GOOS="linux" $env:GOARCH="amd64" 这两个参数吃常用选项:GOARCH 目标平台(编译后的目标平台)的处理器架构(386.a…
写在前面 本期内容是适合第一次使用vue或者golang开发的,内容会以实战的形式来讲解.看懂本段内容需要了解基础内容有html,css,最好可以看一下vue的基础.并且这里的每个知识点不可能详细解说,只会告诉你大概做什么的,入门切记要不求甚解,不然学到自闭 远征的第一步,启动一个vue项目 我们这次主要是写一个以vue为前端框架的登陆和注册,因此我们的第一步也就是创建一个vue项目,并且这个内容在上一节已经讲过了,不过这里我们可以再操作一番. vue create your_projectna…
背景知识 这里先给出一些常用的知识点简要说明,以便理解后面的文章内容. 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位. 进程和线程的关系: 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. CPU的最小调度单元是线程不是进程,所以单进程多线程也可以利用多核CPU. 协程的定义: 协…
一.整数 1.int与uint的初值比较以及其大小. 1 /* 2 #!/usr/bin/env gorun 3 @author :xxxx 4 Blog:http://www.cnblogs.com/xxxxx/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ 5 EMAIL:xxxx@qq.com 6 */ 7 8 ''' 9 [root@xxxx day3]# more myint.go 10 pa…
今天看Martini文档,其功能列表提到完全兼容http.HandlerFunc接口,就去查阅了Go: net/http的文档,看到type HandlerFunc这部分,顿时蒙圈了.由于之前学习的时候没有关注过function types的知识点,就Google了一些文章,才算是有了个大概的了解. 从golang的官方文档得知function types的解释是这样的. A function type denotes the set of all functions with the same…
源码地址: https://github.com/mikeygithub/GoCode 第1章 1Golang 的学习方向 Go 语言,我们可以简单的写成 Golang 1.2Golang 的应用领域 1.2.1区块链的应用开发 1.2.2后台的服务应用 1.2.3云计算/云服务后台应用 1.3学习方法的介绍 1) 努力做到通俗易懂2) 注重 Go 语言体系,同时也兼顾技术细节3) 在实际工作中,如何快速的掌握一个技术的分享,同时也是我们授课的思路(怎么讲解或者学习一个技术).(很多学员反馈非常…