近来换工作,中途休息了下,休来无事,就学了下最近比较热门的Go语言。
Go语言相对比较简单,与C语言有点像,所以在有C基础的情况下,再学习下Go的特性,基本就懂得怎么写了,学起来不会像Scala那么痛苦,太多的特性及语法糖。Go奉行的“大道至简”的设计理念,这个理念一直贯穿语言的每个细节,为学习及开发提供了很多便利。
这里给大家推荐无闻(unknow)录制的《Go编程基础》,作者很用心及谦虚,本人也阅读过许式伟的《Go语言编程》,相比两者,我认为前者更好。接下来的几篇Go语言的博文基本是参考这两者而来。
下面我们来通过一个最基础的Hello World程序来认识这门语言
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World")
}
通过上面的代码,我们已经大致了解了Go语言,接下来我们来了解下Go语言的基础知识。
1、Go内置关键字(25个均为小写)
var :变量声明
const :常量声明
package :包定义
import :包导入
func :定义函数和方法
return :从函数返回
defer :在函数退出之前执行
type :声明自定义类型及接口
map :声明map类型数据
range :遍历读取slice、map、channel数据
interface :定义接口
struct :定义抽象数据类型
go : 并行
chan :channel类型定义
select :选择不同类型的通讯
break、case、continue、for、fallthrough、else、if、switch、goto、default:流程控制
2、Go注释方法(与其它语言基本类似)
// 单行注释
/**/ 多行注释
3、Go程序的一般结构
我们将上面的Hello World程序进行扩展与注释来演示
//定义程序所属的包,包跟源码的位置没有关系,仅跟编译后的文件有关系
//package语句必须放在非注释的第一行
package main
//导入要使用包,可以直接使用import "包名"的方式来导入,但使用import ()
//方式可以在导入多个包时,省写import,另var、const等也支持这种写法
import (
"fmt"
)
//定义常量
const PI float64 = 3.14
//定义变量
var Word string = "Hello World"
//定义结构
type MyStruct struct{}
//定义接口
type MyInterface interface{}
//定义函数,这里定义的main为Go的预留函数,仅在main package中可以定义,
//一个项目中仅允许有一个main方法,如果有多个,项目的build将无法通过,但
//是可以通过go run来单独运行某个文件
func main() {
//使用fmt包中的Println方法打印到控制台,到这里,我们发现不管在哪里,
//Go使用换行来结束一行,而不是使用;
fmt.Println(Word)
fmt.Println("PI = ", PI)
}
4、可见性规则
使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包所调用
即小写为private,大写即为public,简单明了。
至此Go的入门知识就大致介绍完了,后续博文还会对Go语言的其它知识点做介绍。
无闻(unknow)《Go编程基础》
许式伟的 《Go语言编程》