Go语言学习笔记
文章平均质量分 77
码墨
没有命中注定的结局,只有不够努力的过程。
展开
-
Goland开发环境搭建详解
Golang开发环境搭建首先学习一门开发语言首先先要搭建开发环境,有了环境我们才能进行代码的开发,先介绍在一些主流的操作系统编译环境的搭建和IDE选择。一、Go语言开发环境搭建要搭建Go语言开发环境,先下载Go语言的开发工具包,下载下载地址:https://golang.org/dl/,(墙内下载地址http://www.golangtc.com/download),Go为我们所熟...原创 2018-08-19 17:31:02 · 6593 阅读 · 0 评论 -
Go语言TCP/UDP编程
一、TCP/UDP协议TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不...原创 2018-11-13 22:41:02 · 1384 阅读 · 0 评论 -
Go语言接口详解
接口在Go语言有着至关重要的地位。接口是Go语言这个类型系统的基石,让Go语言在基础编程哲学的探索上达到了前所未有的高度。接口解除了类型依赖,有助于减少用户的可视方法,屏蔽了内部结构和实现细节。但是接口实现机制会有运行期开销,也不能滥用接口。相对于包,或者不会频繁变化的内部模块之间,不需要抽象出接口来强行分离。接口最常用的使用场景,是对包提供访问,或预留扩展空间。一、内部实现接口内...原创 2018-08-26 02:17:19 · 3519 阅读 · 3 评论 -
Go语言错误处理
学习错误处理是任何一门语言都必须有的一个重要内容,Go语言漂亮的错误处理也是它的亮点之一。一、error接口标准库将error定义为接口类型,以便于自己定义错误类型。type error interface{ Error() string}通常,error总是最后一个返回参数。标准库提供了相关创建函数,可方便的创建包含简单错误文本的error对象。var er...原创 2018-08-29 22:11:52 · 545 阅读 · 0 评论 -
Go语言函数详解
函数是结构化编程的最小模块。它将复杂的算法过程分解为若干较小的任务,隐藏相关细节,是的程序结构更加清晰,易于维护。函数被设计成相对独立,通过接受输入参数完成一段算法指令,输出或存储相关的结果。函数是代码复用和测试的基本单位。函数的定义函数构成代码执行的基本逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。func add(a int,...原创 2018-08-25 16:09:39 · 1771 阅读 · 0 评论 -
Go语言闭包详解
人们常说面向对象编程和面向过程编程,随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开始受到关注,Python、Ruby 和 Lua 等语言都开始在应用中崭露头角。动态语言因其方便快捷的开发方式成为很多人喜爱的编程语言,伴随动态语言的流行,函数式编程也再次进入了我们的视野。那究竟什么是函数式编程呢? 简单来说,函数式编程是一种编程模型,他将计算机运算看...原创 2018-09-01 09:54:14 · 391 阅读 · 0 评论 -
Go语言goroutine和通道学习
Go语言里的并发指的是能让某个函数独立于其他函数运行的能力。当一个函数创建为goroutine时,Go会将其视为一个独立的工作单位。这个单元会被调度到可用的逻辑处理器上执行。Go语言运行时的调度器是一个复杂的软件,能管理被创建的所有goroutine并为其分配执行时间。这个调度器在操作系统之上,将操作系统的线程与语言运行时的逻辑处理器绑定,并在逻辑处理器上运行goroutine。调度器在任何给...原创 2018-08-29 19:38:14 · 812 阅读 · 0 评论 -
Go语言Map详解
map(字典、哈希表、映射)是一种使用频率很高的数据结构,将其作为语言的内置类型,从运行时层面进行优化,可获得更好的性能。一、内部实现map的源码结构为:// A header for a Go map.type hmap struct { // Note: the format of the Hmap is encoded in ../../cmd/internal/gc/...原创 2018-08-24 18:48:40 · 10482 阅读 · 0 评论 -
Go语言切片深层解析
一、Go语言中切片类型出现的原因切片是一种数据类型,这种数据类型便于使用和管理数据集合。 创建一个100万个int类型元素的数组,并将它传递给函数,将会发生什么? var array [le6]int foo(array) fun foo(array [le6]int){ … }在64位架构上,100个int类型的数组需要800万字节,即8M的内存。...原创 2018-08-23 20:24:34 · 457 阅读 · 1 评论 -
Go语言的常量与变量使用注意事项
一、变量Go是静态类型,不能在运行期改变变量的类型。 面试题 关于全局变量的初始化,下面正确的使用方式是 A、var i int = 10 B、var i = 10 C、i := 10这是一个关于Go语言全局变量声明和赋值的考察,Go语言中的变量声明使用关键字var,例如: var str string //声明变量 str = “te...原创 2018-08-20 23:12:20 · 1143 阅读 · 0 评论 -
Go语言TCP网络编程(详细)
一、序言Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp soc...转载 2018-11-12 20:56:01 · 2991 阅读 · 0 评论