• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go学习笔记(一)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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 是空指针 */


Go 语言Map(集合)

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。

Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
IAR软件的Go to Definition of单击后不跳转(已解决)发布时间:2022-07-10
下一篇:
Windows平台下Go语言开发环境的搭建发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap