Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署

序言这是本人简书第一篇文章,写的不到位之处,希望各位看客们谅解。本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好的将学习过程记录下来。深感惋惜!现在将Golang的学习点滴记录分享,废话到此,下面进入正文。注:此文及以后所有内容中的开发平台为:Windows开发工具为:JetBrains Gogland x64版本官方下载地址为:www.jetbrains.com/go/download/#section=windowsGolang版本为:Go1.8....阅读全文

简书 2020-11-23 08:32:39 赢阡

03. 从零开始学Go语言:五种变量创建的方法

对于只有 Python 语言经验的朋友,也许会不太理解声明这个过程,在 Python 中直接拿来就用,也不用声明类型啥的。Go 语言是静态类型语言,由于编译时,编译器会检查变量的类型,所以要求所有的变量都要有明确的类型。变量在使用前,需要先声明。声明了类型,就约定了你这个变量只能赋该类型的值。声明一般有以下五种方法,其中前面两种同样也可用于定义常量,只需把关键字 var 变成 const 即可。第一种 :一行声明一个变量var <name> <type>其中 var 是关键字(固定不变),nam...阅读全文

51CTO博客 2020-11-20 20:05:27 py编程时光

02. 从零开始学Go语言:VS Code环境的搭建

在上一篇文章里,讲了如何搭建 Go的开发环境,其中使用的是 Goland 这个IDE,不用像 VS Code 去搞各种配置,装各种插件,省了很多力气。说实在的,我不习惯使用 VS Code,打开的次数真的很少很少,尽管很多人觉得它真的好用。昨天的评论区里还有人求 VS Code 的教程,想到仍然有很多使用 VS Code 做开发。就有了这篇文章。由于白天比较忙,导致晚上8点才有时间写这篇文章,错过了每天的发文时间(19:00),不过好在还是搞完了。晚上我也折腾了一下,对比 Goland 不是一般...阅读全文

51CTO博客 2020-11-20 20:06:50 py编程时光

Go语言标准库

Go语言标准库archive tar tar包实现了tar格式压缩文件的存取. zip zip包提供了zip档案文件的读写服务.bufio bufio 包实现了带缓存的I/O操作.builtin builtin 包为Go的预声明标识符提供了文档.bytes bytes包实现了操作[]byte的常用函数.compress bzip2 bzip2包实现bzip2的解压缩. flate flate包实现了deflate压缩数据格式,参见RFC 1951. gzip gzip包实现了gzip格式压缩文件...阅读全文

Segmentfault 2020-11-26 23:32:33 摘下满天星

服务器不允许上网并且需要跳板机才能访问?学会使用这个工具,轻松让服务器使用yum。

前言你是否遇到过这样的场景,服务器不能上网,但是又需要安装某个软件,面对如蛛网般杂乱的rpm包依赖关系,放弃或许是最好的选择,这样你就不必再为无法完成工作而痛苦又懊恼。但是今天,你有了一个更好的选择。4DNAT4DNAT取名源自4和DNAT。这个工具工作在OSI模型的第四层传输层,同时4和for谐音,意为专门为目标地址转换而服务的工具。4DNAT使用go语言开发,具有天然的跨平台性,并且完全使用go标准库开发,没有任何的第三方依赖,编译之后只有一个二进制可执行文件。它有4种工作模式:转发模式接受...阅读全文

Segmentfault 2020-11-26 19:32:32 我在对面的角落

Go 学习笔记 04 | 数组、切片

一、数组 数组长度指定之后,不可修改。[...] 会自行推断数组长度。 var arr = [...]int{1,2,4} 指定索引值来初始化数组。 arr := [...]int{0: 1, 1: 10, 2: 20, 5: 50} 输出: [1 20 20 0 0 50] 基本数据类型和数组都是值类型,& 是引用类型。 二、切片 Golang 中申明切片之后,切片默认值就是 nil。 len() 取长度,cap() 求切片的容量。 定义切片的时候,把数组长度去掉。 var arr []int...阅读全文

实战:150行Go实现高性能socks5代理

光说不练假把式,不如上手试试,这篇来写个有点卵用的东西。TCP Server用 Go 实现一个 TCP Server 实在是太简单了,什么 c10k problem、select、poll、epoll、kqueue、iocp、libevent,通通不需要(但为了通过面试你还是得去看呀),只需要这样两步:监听端口 1080(socks5的默认端口)每收到一个请求,启动一个 goroutine 来处理它搭起这样一个架子,实现一个 Hello world,大约需要 30 行代码:func main()...阅读全文

Segmentfault 2020-11-25 20:32:31 felix021

Go 学习笔记 02 | 基本数据类型以及 byte 和 rune 类型

一、基本数据类型 unsafe.Sizeof() 查看不同长度的整型在内存中的存储空间。 类型转换,高位向低位转换要注意溢出。 数字字面量语法。 64 位系统中 Go 语言中浮点数默认是 float64。 二、Golang 中 float 精度丢失问题 利用第三方包:github.com/shopspring/decimal bool 类型变量的默认值为 false。 Go 语言不允许将整型强制转换为布尔型,布尔型无法参与数值运算,也无法与其他类型进行转换。 三、字符串 转义字符 \n 表示换行...阅读全文

六星教育:备受争议的PHP, Golang的加入,又会掀起怎么波澜?

六星教育了解到,如果你经常关注PHP之类文章或新闻,就会发现PHP处于整个编程语言链底端,无论是嘲梗“PHP是最好的语言”,还是编程语言排名榜或市场占有率,PHP总处于让人嫌弃的状态。事实上,PHP果真如此不堪吗?你可因为这类言论而放弃过PHP的学习呢?现在,就让我们一起去了解真实的PHP,彻底打破这面带有“歧视”意味的镜子。 首先,我们需要了解PHP真的下坡了吗?PHP市场占有率又是多少?从市场份额来看。我们在W3Techs提供的数据与报告中得知,在服务端编程语言的所有网站,PHP使用率为79...阅读全文

简书 2020-11-21 19:32:46 最新技术分享

Java 微服务能像 Go 一样快吗?

Peter Nagy 和我在 2020 年 8 月的甲骨文 Groundbreakers Tour 2020 LATAM 大会上发表一篇论文,题为《Go Java, Go!》。我们在本文中提出一个问题:“Java 微服务能像 Go 一样快吗?”为此,我们创建了一系列微服务并进行了基准测试,并在会议上展示了我们的成果。但其中还有不少可以探索的空间,因此我们决定将在本文中进一步探讨。 背景介绍 我们希望通过实验了解 Java 微服务在运行速度上能否达到 Go 微服务的水平。目前,软件行业普遍认为 J...阅读全文

简书 2020-11-21 19:32:41 神奇小汤圆

简单工厂模式

1.1. 模式动机考虑一个简单的软件应用场景,一个软件系统可以提供多个外观不同的按钮(如圆形按钮、矩形按钮、菱形按钮等), 这些按钮都源自同一个基类,不过在继承基类后不同的子类修改了部分属性从而使得它们可以呈现不同的外观,如果我们希望在使用这些按钮时,不需要知道这些具体按钮类的名字,只需要知道表示该按钮类的一个参数,并提供一个调用方便的方法,把该参数传入方法即可返回一个相应的按钮对象,此时,就可以使用简单工厂模式。1.2. 模式定义简单工厂模式(Simple Factory Pattern):又...阅读全文

简书 2020-11-21 19:32:40 nodeadbird

快排算法及优化思路

快排 算法要点 设立基准值,以基准值为中心,根据分治思路把大于基准值放一边,小于基准值放另一边。 递归上一步的操 作。 基准值获取想法 1.从最左或最右或中间 2.基准值的获取直接影响了时间算法的复杂度,理想情况是0(nlogn),最坏情况是n^2。 3.从这个角度来看,快排算法是不稳定的 尾递归优化 最右的基准值 func patitionLeft(data []int, begin, end int) int{ pivot := data[end] leftShit := begin for...阅读全文

简书 2020-11-21 19:32:39 hugoren

Go 学习笔记 01 | 输出、变量、常量、命名规则和代码风格

一、输出 Println 和 Print 区别 Println 会自动换行输出,Print 不会自动换行输出。 package main import( "fmt" ) func main(){ fmt.Println("hello, golang!") fmt.Print("hello, golang!") } 输出: hello, golang! hello, golang! 一次输出多个值,Println 中间会有空格,Print 没有空格。 package main import( "f...阅读全文

Go语言相关书籍推荐(从入门到放弃)

前言最近总有读者问我可不可以推荐一下go语言入门必读书籍。所以今天就推荐几本。因为笔者也没读过几本,所以就咨询了几位前辈,现在我就把这一份书单介绍给你们,从入门到进阶。Go语言简介Go语言是最近几年流行起来的语言,该语言由谷歌发明,现在得到广泛应用。Go语言的最大特点就是语法简单且并发支持度好,开发效率很高。平常我们在C/C++语言中需要几十行的代码量,在Go语言中可能就只需要几行代码就可以搞定。现在也越来越多的人开始转学Go。Go语言优势脚本化的语法;开发效率高,容易上手静态类型+编译型,程序...阅读全文

Segmentfault 2020-11-25 13:32:33 asong

发: Golang runtime

https://purewhite.io/2019/11/...调度器结构调度器管理三个在 runtime 中十分重要的类型:G、M 和 P。哪怕你不写 scheduler 相关代码,你也应当要了解这些概念。G、M 和 P一个 G 就是一个 goroutine,在 runtime 中通过类型 g 来表示。当一个 goroutine 退出时,g 对象会被放到一个空闲的 g 对象池中以用于后续的 goroutine 的使用(译者注:减少内存分配开销)。一个 M 就是一个系统的线程,系统线程可以执行用...阅读全文

Segmentfault 2020-11-25 11:32:33 xxx小M

Golang学习笔记 内存分配 GO.1.51

不太懂的APIpersistentalloc sysAllocmfixalloc.go// 固定大小的对象分配器。 返回的内存未归零。 // // See malloc.go for overview. package runtime import "unsafe" //FixAlloc是用于固定大小对象的简单自由列表分配器。 //Malloc使用包裹在sysAlloc周围的FixAlloc来管理其MCache和MSpan对象。 //FixAlloc_Alloc返回的内存未归零。 //调用方负责...阅读全文

Segmentfault 2020-11-24 16:32:32 xxx小M