在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Go 语言用途Go是一种编译型语言,它结合了解释型语言的的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
默认情况下,Go 语言使用的是值传递,即在调用过程中不会影响到实际参数。当把一个数组作为参数传入函数的时候,传入的其实是该数组的副本,而不是它的指针。
array、slice、map 静态数组、动态数组、无序字典(声明后,在使用前需要初始化) 注意slice和数组在声明时的区别:声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明slice时,方括号内没有任何字符,且slice是引用类型,map也是引用类型。
Go语言核心点: 1.struct 2.面向对象 3.interface 4.并发
除了main包外,其它的包都会生成*.a文件()
Go使用UTF-8字符串和标识符(因为UTF-8的发明者也就是Go的发明者),所以它天生就具有多语言的支持
初始化":="这个符号只能用在函数内部
Go对于已声明但未使用的变量会在编译阶段报错,在这种情况下,可以使用_来丢弃不需要的返回值
Go语言比C更先进的特性,其中一点就是函数能够返回多个值。
Go只有25个关键字
当代码中有很多重复的地方时,不优雅。在defer后指定的函数会在函数退出前调用。defer采用后进先出的模式。
struct不仅仅能将struct作为匿名字段、自定义类型、内置类型都可以作为匿名字段,最外层的优先访问。
指针作为receiver会对实例对象的内容发生操作,而普通类型作为receiver仅仅是以副本作为操作对象,并不对原实例对象发生操作。
如果一个method的receiver是*T,你可以在一个T类型的实例变量V上面调用这个method,自动帮你转。
Go里面的面向对象如此简单,没人任何的私有、共有关键字,通过大小写(大写开头的为共有,小写开头的为私有)
空interface在我们需要存储任意类型的数值的时候相当有用,因为它可以存储任意类型的数值,它有点类似于C语言的void*
Go中字符串是不可变的
在Go中,同时声明多个常量、变量、或者导入多个包时,可采用分组的方式进行声明。
Go 空指针当一个指针被定义后没有分配到任何变量时,它的值为 nil。 nil 指针也称为空指针。 nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。 一个指针变量通常缩写为 ptr。 查看以下实例: package main import "fmt" func main() { var ptr *int fmt.Printf("ptr 的值为 : %x\n", ptr ) } 以上实例输出结果为: ptr 的值为 : 0 空指针判断: if(ptr != nil) /* ptr 不是空指针 */ if(ptr == nil) /* ptr 是空指针 */ |
请发表评论