Go
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了
Allen_by
充满理想与追求,这一切似在指尖、心尖,都缠绕,都充盈,蓬勃待飞C语言、汇编语言、数据库系统、JAVA编程思想、C++程序设计、数据结构、计算机网络及算法与数据结构等专业知识擅长的计算机语言,以及计算机硬件的知识。数据库知识和经验,网络知识和技能
展开
-
Go 并发
Go 语言支持并发,我们只需要通过 go 关键字来开启 goroutine 即可。goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。goroutine 语法格式:go 函数名( 参数列表 )或go f(x, y, z)#开启一个新的 goroutine:f(x, y, z)Go 允许使用 go 语句开启一个新的运行期线程, 即 g...原创 2019-03-28 20:55:16 · 187 阅读 · 0 评论 -
Go 错误处理
Go 语言通过内置的错误接口提供了非常简单的错误处理机制。例如package mainimport ( "fmt")type DivideError struct { dividee int divider int}func (de *DivideError) Error() string { strFormat := ` Cannot proceed, the d...原创 2019-03-28 20:55:28 · 186 阅读 · 0 评论 -
Go 语言接口
o 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。例如package main import ( "fmt")type Phone interface { call()}type NokiaPhone struct {}func (nokiaPhone NokiaPhone) call()...原创 2019-03-28 20:55:48 · 131 阅读 · 0 评论 -
Go 语言类型转换
类型转换用于将一种数据类型的变量转换为另外一种类型的变量。type_name(expression)例如package main import "fmt"func main(){ var sum int = 17 var count int = 5 var mean float32 mean = float32(sum)/float32(count) fmt.Pri...原创 2019-03-28 20:55:53 · 208 阅读 · 0 评论 -
Go 语言递归函数
递归,就是在运行的过程中调用自己。func recursion() { recursion() /* 函数调用自身 */}func main() { recursion()}Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。阶乘package main import "fmt"func Factorial(n uint...原创 2019-03-28 20:55:57 · 338 阅读 · 0 评论 -
Go 语言Map(集合)
Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。定义 Map可以使用内建函数 make 也可以使用 map 关键字来定义 Map/* 声明变量,默认 map 是 ...原创 2019-03-28 20:56:01 · 211 阅读 · 0 评论 -
Go 语言范围(Range)
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对的 key 值。package main import "fmt"func main(){ nums := []int{2, 3, 4} sum := 0 fo...原创 2019-03-28 20:56:05 · 230 阅读 · 0 评论 -
Go 语言切片(Slice)
Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。定义切片var identifier []typevar slice1 []type = make([]type, len)也可以简写为slice1 := m...原创 2019-03-28 20:56:09 · 181 阅读 · 0 评论 -
Go 语言结构体
Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。定义结构体结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体有中有一个或多个成员。type 语句设定了结构体的名称。type struct_variable_type struct { m...原创 2019-03-28 20:56:13 · 145 阅读 · 0 评论 -
Go 语言指针
Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址什么是指针一个指针变量指向了一个值的内存地址。声明格式var var_name *var-typevar ip *int /* 指向整型*/var fp *float32 /* 指向浮点型 */使用指针定义指针变量。为指针变量赋值。访问指针变量中指向地址的值。在指针类型前...原创 2019-03-27 21:55:42 · 148 阅读 · 0 评论 -
Go 语言数组
Go 语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。声明数组var variable_name [SIZE] variable_typevar balance [10] float32初始化数组var balance = [5]float32{1000.0, 2.0, 3.4, 7....原创 2019-03-27 21:55:28 · 191 阅读 · 0 评论 -
Go 语言变量作用域
作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明:函数内定义的变量称为局部变量函数外定义的变量称为全局变量函数定义中的变量称为形式参数局部变量在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。package main import "fmt"func main(){ ...原创 2019-03-27 21:55:47 · 235 阅读 · 0 评论 -
Go 语言函数
函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可复用的内置函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。函数...原创 2019-03-27 21:55:51 · 187 阅读 · 0 评论 -
Go 语言循环语句
Go 语言提供多种类型循环处理语句循环类型描述for 循环重复执行指定次数语句块循环嵌套在 for 循环中嵌套一个或多个 for 循环Go 语言 for 循环语法for init; condition; post { }init: 一般为赋值表达式,给控制变量赋初值;condition: 关系表达式或逻辑表达式,循环控制条件;post: 一般为赋...原创 2019-03-27 21:55:56 · 181 阅读 · 0 评论 -
Go 语言条件语句
条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。放大图片放大图片放大图片放大图片if 语句if 布尔表达式 { /* 在布尔表达式为 true 时执行 */}放大图片放大图片例如:package main import "fmt"func main(){ var a ...原创 2019-03-21 23:04:51 · 100 阅读 · 0 评论 -
Go 语言运算符
运算符用于在程序运行时执行数学或逻辑运算。Go 语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符算术运算符Go语言的算术运算符。假定 A 值为 1,B 值为 2。运算符描述实例+相加A+B=3-相减A-B=-1*相乘A*B=2/相除A/B=0%求余A%B=1++自增A+...原创 2019-03-21 23:05:05 · 246 阅读 · 0 评论 -
Go 语言常量
常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。const identifier [type] = value显式类型定义: const b string = "abc"隐式类型定义: const b = "abc"const name1, name2 = value1, value2常量可以用le...原创 2019-03-20 21:22:08 · 119 阅读 · 0 评论 -
Go 语言变量
Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字:var identifier type变量声明指定变量类型,声明后若不赋值,使用默认值。var name type; name = value第二种,根据值自行判定变量类型。var name = value第三种,省略 var, 注意 := 左侧需要声明新的变量...原创 2019-03-20 21:22:35 · 149 阅读 · 0 评论 -
Go语言数据类型
数据类型用于声明函数和变量,数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。序号类型描述1布尔型布尔型的值只可以是常量 true 或者 false。2数字类型整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。3...原创 2019-03-20 21:22:46 · 204 阅读 · 0 评论 -
Go语言基础
Go语言标记Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号, 函数,类型。行分隔符Go 程序中,一行代表一个语句结束。每个语句不需要以分号 ; 结尾,打算将多个语句写在同一行,它们则必须使用 ; 人为区分。注释注释不会被编译,单行注释是使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。// 单行注释/* 多行注释 *...原创 2019-03-20 21:23:01 · 172 阅读 · 0 评论