go基本语法

#Go语法

##1. 基础语法

一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。
如果你打算将多个语句写在同一行,它们则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法
例:

fmt.Println("Hello, World!")
fmt.Println("菜鸟教程:runoob.com")

标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。
以下是有效的标识符:

mahesh   kumar   abc   move_name   a_123
myname50   _temp   j   a23b9   retVal

以下是无效的标识符:

1ab(以数字开头)
case(Go 语言的关键字)
a+b(运算符是不允许的)

####关键字

下面列举了 Go 代码中会使用到的 25 个关键字或保留字:

break	default	func	interface	select
case	defer	go	map	struct
chan	else	goto	package	switch
const	fallthrough	if	range	type
continue	for	import	return	var

除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:

append 	bool 	byte 	cap 	close 	complex 	complex64 	complex128 	uint16
copy 	false 	float32 	float64 	imag 	int 	int8 	int16 	uint32
int32 	int64 	iota 	len 	make 	new 	nil 	panic 	uint64
print 	println 	real 	recover 	string 	true 	uint 	uint8 	uintptr

程序一般由关键字、常量、变量、运算符、类型和函数组成。
程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}。
程序中可能会使用到这些标点符号:.、,、;、: 和 …。

##2. Go 语言变量

Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

声明变量的一般形式是使用 var 关键字:

var identifier type

可以一次声明多个变量:

var identifier1, identifier2 type

####变量声明

  • 第一种,指定变量类型,如果没有初始化,则变量默认为零值。

    var v_name v_type
    v_name = value

零值就是变量没有做初始化时系统默认设置的值。

  • 第二种,根据值自行判定变量类型。

      var v_name = value
    
  • 第三种,省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误,格式:

      v_name := value
    
  • 例如:
var intVal int 

intVal :=1 // 这时候会产生编译错误

intVal,intVal1 := 1,2 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句
  • 多变量声明
  • //类型相同多个变量, 非全局变量
    var vname1, vname2, vname3 type
    vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断

vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
  • // 这种因式分解关键字的写法一般用于声明全局变量
var (
    vname1 v_type1
    vname2 v_type2
)

##Go 语言常量

  • 常量是一个简单值的标识符,在程序运行时,不会被修改的量。

  • 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

  • 常量的定义格式:

      const identifier [type] = value
    
  • 你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。

      显式类型定义: const b string = "abc"
      隐式类型定义: const b = "abc"
    
  • 多个相同类型的声明可以简写为:

      const c_name1, c_name2 = value1, value2
    
  • 常量还可以用作枚举:

      const (
          Unknown = 0
          Female = 1
          Male = 2
      )
    

##Go 语言条件语句

  • select 语句 select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。

注意:Go 没有三目运算符,所以不支持 ?: 形式的条件判断。
##Go 语言数组

  • 声明数组

    • Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:

    • var variable_name [SIZE] variable_type

    • 以上为一维数组的定义方式。例如以下定义了数组 balance 长度为 10 类型为 float32:

         var balance [10] float32
      
  • 初始化数组

    • 以下演示了数组初始化:

         var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
      
    • 初始化数组中 {} 中的元素个数不能大于 [] 中的数字。

    • 如果忽略 [] 中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小:

          var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
      
    • 该实例与上面的实例是一样的,虽然没有设置数组的大小。

         balance[4] = 50.0
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值