所有的学习都是从基础语法与关键字开始的,接下来一系列文章都是对于学习过程中的总结。
学习中最好的方法就是学习完以后,自己总结一遍,或者教别人一遍,帮助他人的同时,你自己也会有很多收获。
开始
先让我们从hello world开始吧
package main
import "fmt"
func main() {
fmt.Println("Hello ,world")
}
关键字 package ,import,func
package关键字声明代码所属的包,import关键字用来声明导入的包,func为声明函数。
本段代码中,所属的包为main,导入的包为fmt,fmt是一个提供格式化输入输出的包,func声明了一个main函数。main这一标识符具有特殊意义,它是一个程序的入口。
函数必须以 {} 包裹,并且 { 必须放置在函数声明的后面,这是go语言的固定格式,不能换行书写。
对面fmt包里包含的具体方法,可以去https://studygolang.com/pkgdoc查阅具体的api
关键字 const,var
const为常量,var为变量,具体的使用,可以阅读下面的代码
func main() {
const a = 16 //声明一个常量
//a = 32 错误,常量无法再次赋值
const a1,a2 = 1,2 //对2个常量同时赋值
//对多个常量赋值的另一种写法
const (
age = 32
height = 173
weight int = 56
)
const name string = "张三" //显示定义常量 类型
const anotherName,anotherAge = "李四",18 //编译器自动识别值类型
var b = 32 //声明一个变量
b = 33 //对变量重新赋值
c := 36 //另一种赋值方式,等价于 var c = 36,但不能定义在函数体外部
//其它可以的赋值方式与常量相同
}
对于变量的增量赋值操作,与java语言中的基本相同。
例如:
a += 1
a++
都等价于
a = a+ 1
但是go语言中没有前置增量操作,如++a等
条件语句:if else,switch case default , for break,fallthrough
学过编程的同学,应该对这些并不陌生,这些都是用来做比较和循环判断的,我也简单的说一下go里面需要注意的地方。
func main() {
//最基本的循环,相比java,条件部分不需要使用()包裹起来
for i := 0; i < 10; i++ {
fmt.Println(i)
}
//只有一个判断参数的循环,go里面也是允许的
var i = 0
for i < 10 {
i++
}
//不带参数的循环,相当于while(true),无限循环,可以通过break跳出循环
//所以go语言里面是没有while关键字的
var j = 0
for {
j++
if j > 10 {
break
}
}
//if else和普通的使用没有什么区别,但是一定要加上花括号
if i == 0 {
fmt.Println("i 等于 0")
} else {
fmt.Println("i 不等于 0")
}
//if里面可以使用简短声明把函数和判断写在一起,缩减代码量
//但是声明的变量只在if花括号的生命周期里有用,同理,switch语句里也可以这样写
if i := rand.Intn(3);i == 2{
fmt.Println("i 等于 2")
}
//switch语句,和java语法差不多,但是不需要每一句代码后面跟break
i = 1
switch i {
case 1:
fmt.Println("i 等于 1")
//使用该关键字表示如果进入这个case语句,除了执行当前代码以外,
//还会执行下一个case里面的内容,fallthrough不能放在代码的最后一个case里,编译器会直接报错
fallthrough
case 2:
fmt.Println("i 等于 2")
default:
fmt.Println("i 没有可以匹配的值")
}
}