golang基础(1)

golang-gopher.png

go 作为一门相对年轻的语言是在 2009 年由 Ken Thompson 和 Robert Griesemer 共同在 Google 孵化出来的。go 在许多方面都是可以看到 c 和 c++ 的影子。

robert_griesemer.jpg

Ken Thompson 参与了开发 unix,而且

Thompson 也参与 c 语言开发。(下图)

thompson01.jpg

  • 编译为机器码
  • 垃圾回收
  • 协程(goroutine)
  • 用于线程同步的通道(channels)
  • 静态类型
  • 没有类或类型的继承
  • 通过接口定义关系

go 作为一门高级语言有自己垃圾回收,因此 go 语言不算上是一门可以写出高效的低级语言。所有 golang 并不适合开发操作操作系统和大型游戏。

go 语言在处理线程同步和并发上下了很多功夫,为此设计出来 goroutine 和 channel。这些特点让我们可以看出 golang 是一门服务端的语言。除此外 go 语言还适合写一些脚本。

go 语言作为一门静态语言,不想 python 和 ruby 有类型转换的负担。在 go 语言中没有面向对象思想也没有类的概念。go 语言依据 interface 的结构为 ad-hoc(点对点)关系。通过接口定义一些方法和类型,避免创建复杂和类型的情况发生。

变量声明

var foo string;
foo = "hello" //ok
foo = 5 // 编译错误

与 JavaScript 语言差不多,通过 var 关键字定义变量。然后 foo 类型定义为 string。作为一门静态语言,必须为变量声明类型。

var foo = "hello" //
foo = 5 // 编译错误

如果声明变量时没有特殊指定类型,go 会根据变量的赋值类型来确定变量 foo 的类型,所以随后再为 foo 赋值为 5,就会报出类型错误。

foo := "hello" // 隐式声明
foo = 5 // 编译错误
我来评几句
登录后评论

已发表评论数()

相关站点

热门文章