网站首页 返回列表 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。
golang 网络编程(8)表单
golang_real.jpg其实本人现在有点讨厌搬砖的工作,但是有的时候还是的搬一搬。不搬那知道自己有力气。th-14.jpeg客户端代码模板文件,下面是表单提交的客户端代码可能在熟悉不过了。就不多解释了。__usernamepassword服务端代码__funclogin(whttp.ResponseWriter,...
阅读全文
golang 基础 strings 包(36)
square-gopher.png对于字符串操作是web开发再常见不过操作,可能我们通过对字符串拼接,截取以及拆分来展示数据呈现给用户。Split__rec:="zidea,angularjs,javascript"for_,info:=rangestrings.Split(rec,","){fmt.Printf("%...
阅读全文
golang 网络编程(2)TCP
golang_real.jpgTCP(TransmissionControlProtocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。说到网络编程我们先理解一个术语**套接字**,突破这个术语,我们就向理解TCP迈出了一大步。简单比喻一下吧,我们彼此间通过打电话或...
阅读全文
golang 网络编程(10)文本处理
golang_real.jpgJson处理现在大部分我们从服务端获取数据都是Json格式,所以对json格式数据处理在web应用开发中显得至关重要。有关json我想大家再熟悉不过了,这里就简单地提一句,json就是一种轻量级的数据交换语言。尽管json是javascript的一个子集,但json是独立于语言的文本格式。...
阅读全文
Golang 入门 : 结构体(struct)
Go通过类型别名(aliastypes)和结构体的形式支持用户自定义类型,或者叫定制类型。试图表示一个现实世界中的实体。结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和一个类型。结构体的目的就是把数据聚集在一起,以便能够更加便捷地操作这些数据。结构体的概念在C语言里很常见,被称为struct。...
阅读全文
golang 基础(27)http
golang_real.jpgHTTP编程Http可能使我们最熟悉的网络协议了吧,那么我们知道他全称吗?超文本传输协议,当初最开始写html时候看到这个名词有点confusing。在Go语言标准库内建提供net/http包,涵盖了HTTP客户端和服务端的具体实现。*使用http客户端发送请求*使用http.Client...
阅读全文
【Golang 基础】Go 语言的指针
Go语言的指针变量是一种使用方便的占位符,用于引用计算机地址,而在Go语言中可以通过`&`符号获取一个变量在计算机中对应的内存地址。__packagebasicimport"fmt"funcmain(){a:=1fmt.Println(&a)//0xc4200180a0}一个指针变量指向了一个值的内存地址。Go语言中的...
阅读全文
golang 网络编程(5)中间件
golang_real.jpg当构建web应用程序,可能对所有的请求会共享一些功能。例如我们每一个请求都会写入日志。*打印http请求或返回的日志*压缩http请求的返回值*将http请求头保持一致*实现安全以及权限验证Middleware-web.jpg在go语言net/http标准库中提供了中间件类似的函数Stri...
阅读全文
golang 基础 fmt 包(35)
golang_real.jpggolang基础系列分享,之前的内容比较粗而且有的存在问题,我在发布新的内容还同时不断更新之前的分享希望大家关注,也希望对于您学习go这门语言有所帮助。在之前分享中用的最多就是`fmt`包来将结果输出便于学习和调试。`fmt`这包提供打印函数将字符串输出到控制台、文件或其他满足io.Wri...
阅读全文
golang 基础(33)异常处理
golang_real.jpg对出初学者往往忽视程序中异常处理,认为程序总是是在一个被百般呵护的环境运行,没有任何风吹雨打,这是因为我们是最了解自己程序的人。所以我们知道他喜欢什么,什么能吃什么不能吃。不过终归有一天他回归自然。这是适应外界环境是他能否在激烈竞争市场存活的基本条件。这种适应外界恶劣环境能力就是他对异常或...
阅读全文
golang 基础(31) 锁
square-gopher.png在go语言中提供了并发编程模型和工具外,还提供传统的同步工具锁,包括**互斥锁**和**读写锁**有关互斥锁有些内容我们必须清楚,也就是对于同一个互斥锁的锁定操作和解锁操作应该是成对出现。如果一个锁定一个已经锁定的互斥锁,那么进行重复锁定操作的goroutine将被阻塞,直到该互斥锁回...
阅读全文
golang 网络编程(6)中间件
golang_real.jpg在前面的分享我们通过学习自己动手写了两个拦截器,输出日志和简单权限校验。这也是我们中间件通常要做的事。其实很多时候我们不需要自己做过多事,想喝咖啡我们还有必要去种、烘焙、研磨吗?直接麦当劳了。不过我们简单了解一下中间件实现原理还是很有必要的。先拿日志系统举例吧。通常我们的日志需要以文件形式...
阅读全文
golang 网络编程(3)
square-gopher.png`text/template`__typeTutstruct{TitlestringAuthorstring}先定义数据结构,我们可能总是习惯用我们熟知语言例如java中对应的类来理解go语言中结构,这就错了,在学习一门外语的时候我们总是在头脑中先翻译为中文,然后通过中文含义去理解外语...
阅读全文
Golang的入门教程(四)
1:变量逃逸堆和栈各有优缺点,该怎么在变成中处理这个问题呢?Go语言将这个过程整合到编译器中,命名为"变量逃逸分析".这个技术由编译器分析代码的特征和代码生命周期,决定应该如何堆还是栈进行内存分配,即使程序员使用Go语言完成了整个工程后也不会感受到这个过程.1.1:逃逸分析如何通过命令行分析变量逃逸,代码如下__pac...
阅读全文
从源码角度看Golang的堆内存管理
从源码角度看Golang的堆内存管理本章主要从源码角度针对Go堆上的内存管理进行分析。仅关注linux系统下的逻辑。代码版本GO1.9.2。本章例子中的代码对应详细注释参考:[gosrc-reader](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2...
阅读全文