Golang
文章平均质量分 80
xiaomiCJH
这个作者很懒,什么都没留下…
展开
-
01 - 欢迎来到go世界,Hello world
一、安装golang首先在学习狗语言之前,我要学会安装golang, 然后配置环境变量,仔细认真地学习golang的安装过程将会收获很多1. Yum安装CentOS: sudo yum install go2. 源代码安装go语言官网: https://golang.org/dl/在该网站中,找到对应的 Go 的安装包并且下载下来命令安装安装目录:/usr/local/...原创 2018-12-25 11:04:28 · 237 阅读 · 0 评论 -
13 - 赋值与类型
我通常理解的最简单的表达式赋值,可以理解为 “x = 1”,但是在 C++ 当中我们还有左值引用和右值引用,但是在 go 语言当中,我们出了有普通赋值之外,还有多元赋值等。一、赋值x = 1 // 命名变量赋值*p = true // 通过指针间接赋值person.name = "bob" // 结构体字段赋值count[x] = count[x] * scale // 数组、...原创 2019-01-15 17:29:27 · 541 阅读 · 0 评论 -
12 - 变量的生命周期和变量逃逸
在 C/C++ 中我们每一个 "{ }"范围内,我们称之为一个作用域,在该作用域的范围内声明的变量仅仅只能在该范围有效,这就是变量的一个生命周期,而声明在全局的变量,那么其生命周期将会持续到整个程序的结束,但 go 语言中的局部变量和包一级别的变量也是如此,但是在 go 中会存在局部变量的逃逸当前作用范围。一、变量的声明周期变量的生命周期指的是在程序运行期间变量有效存在的时间间隔。对于在包一...原创 2019-01-14 16:26:54 · 1160 阅读 · 0 评论 -
11 - new() 和 make() 的恩爱情仇
在 go 语言当中有两个用于内存分配的内建函数 new() 和 make() 。但是对于初学者而言, 它们之间的区别容易让人模糊。 简单总结之间的区别就一句话,new 只分配内存, make 用于 slice,map,和channel 的初始化。一、new1. 理解 new在 C++ 当中 new 一片内存,将会调用构造函数进行初始化,但是在 go 中 new 一片内存只是将其设置为零值,...原创 2019-01-14 15:28:40 · 250 阅读 · 0 评论 -
10 - 指针和参数解析
在 C/C++ 当中可以通过指针申请堆栈空间,指向某个变量空间,可以说不会指针,就不会 C/C++, 然而在 go 中也用指针的用法,其和 C/C++ 类型一、指针1. 指针变量在 go 中, 一个变量对应了类型值的内存空间。一个指针的值是另一个变量的空间内存地址,那么通过指针,我们可以在不需要知道该变量的名字的情况下直接读或更新对应变量的值。如下:x := 1p := &x ...原创 2019-01-13 19:20:06 · 260 阅读 · 1 评论 -
08 - 程序结构
从第8节开始的接下来几章节,将会对 go 的程序结构方面的知识进行详解程序结构在 go 语言的运行程序当中,少不了类似于 C/C++ 的 main 函数的入口; 而在 go 语言当中,其程序运行的起来为 main 包, 而 main 函数是不可缺少的一部分:以下是一个完整的 go 程序结构分析如下:package main // 声明的 main 包, 它指明了当前 xx.go 文件属于某...原创 2019-01-13 15:49:38 · 172 阅读 · 0 评论 -
09 - 命名和声明
原创 2019-01-13 15:08:56 · 224 阅读 · 0 评论 -
06 - 获取URL
Go 语言在 net 这个强大 package 的帮助下提供了一系列的 package 来做这件事情,使用这些包可以更简单地用网络收发信息,还可以建立更底层的网络连接,编写服务器程序。一、获取URL来源于 Linux 的 curl 命令的灵感,通过下面程序 urlfetch 将会获取对应的 url, 并且将其原文本打印出来相关源代码如下://Fetch prints the content...原创 2019-01-06 19:21:14 · 260 阅读 · 0 评论 -
07 - 获取URL, 并发 goroutine和channel
Go 语言最大的特征之一,就是对并发编程的支持,接下来我们将简单理解一下并发一、goroutine 获取URL06 - 获取URL 中简单地获取了 http 的信息,接下来我们将会同时去获取所有的 URL ,所以这个程序的总执行时间不会超过执行时间最长的那一个任务,前面的 urlfetch 程序执行时间则是所有任务执行时间之和。 urlfetchall 程序只会打印获取的内容大小和经过的...原创 2019-01-11 16:51:09 · 272 阅读 · 0 评论 -
05 - 查找重复行3 深一步了解go
前2节已经对 dup 做了深一步的解析, dup1 和 dup2都是以数据流的形式输入。理论上可以处理任意多行的输入数据,它是一步一步以数据流的方式读取数据。另外还可以一口气将数据全部读取到内存中,一次分割成多行,然后在处理一、 dup3运行路径:$GOPATH/src/gopl/ch1/dup/运行方式:go run dup3.go input.txtinput.txt里面的...原创 2019-01-05 20:03:09 · 238 阅读 · 3 评论 -
04 - 查找重复行2 深一步了解go
接上一节任务运行后续在上一节中 dup1 从标准输入当中获取数据,而在 dup2 当中我们读取标准输入或是使用os.Open打开各个具名文件,并操作它们。一、dup2运行路径:$GOPATH/src/gopl/ch1/dup运行方式$ go run dup2.go input.txt尝试了上述的运行方式,我们得到以下的运行结果 二、程序分析以下是程序从标准输入或者某个文件...原创 2019-01-05 16:13:38 · 215 阅读 · 0 评论 -
03 - 查找重复行1 深一步了解go
思路对文件做拷贝、打印、搜索、排序、统计或类似事情的程序都有一个差不多的程序结构:一个处理输入的循环,在每个元素上执行计算处理,在处理的同时或最后产生输出。接下来根据 Linux 的 uniq 命令,其寻找响铃的重复行,我们将会用 go 语言编写三个版本的 dup, 方便我们更加详细的详解 go 语言的结构例如:// 输入文件xiaomihelloworldxiaomihel...原创 2019-01-04 20:15:44 · 683 阅读 · 4 评论 -
02 - 理解项目结构中的包的文件
本片当中将带大家更加深一步了解go语言中的项目结构, 以及包和文件原创 2018-12-25 15:22:42 · 259 阅读 · 0 评论 -
14 -包和文件的关系
08 - 程序结构中初步的介绍了 go 语言和包的结构, 接下来我们将会更加详细的介绍包和文件之间的恩爱情仇一、包GO 语言当中的包和其他语言的库或者模块很类似,都是为了支持模块化、封装、单独编译和代码重用。package的使用原则:一个包的源代码在一个或者多个以 .go 为后缀名的源文件当中. 例如 包 gopl/ch2/tempconv对应的路径就是 $GOPATH/src/gop...原创 2019-01-15 20:08:00 · 480 阅读 · 0 评论