Go语言学习笔记 (基础数据类型和控制语句)
目录
最近参加字节跳动的青训营项目,因为字节现在基本全是Go语言,所以他们的后端路线以Go语言为主要开发语言,以下是我的学习笔记,因为有C++和java的功底,我学习起来还是很快的
Hello World!
//包名
package main
//引入Go语言标准库
import (
"fmt"//包含控制输出的语句
)
//函数
func main() {
fmt.Println("hello world")
}
我个人感觉Go语言就是汲取各个编程语言的优点糅合而成,例如它和python一样不需要在行尾写分号,但是又有C++中的花括号来控制语句层次,对掌握好几种编程语言的人来说入门Go语言很快,对初学者也很友好
包
在 Go 语言中,每个 Go 程序文件都必须属于一个包。
包是 Go 语言组织代码的方式,它有助于代码的模块化、可维护性和可重用性。
一个 Go 程序最少包含一个包声明,一般是package main
用于可执行程序,或者其他名称用于库包。
标准库
和其他语言类似,Go中也有官方提供的标准库,格式类似以下(有点像Java)
import (
"time"//包含本地时间等api
"fmt"//包含输出相关的函数
......
)
变量声明
Go语言支持var语言自动推导类型,也可以自己定义类型,形式多样,一般情况下直接用var即可
定义格式如下几种
//var关键字自动推导变量卡类型
var a = "initial"
// var +变量名 +变量类型 的形式
var b, c int = 1, 2
// var + 变量名 + 变量类型
var e float64
// 变量名 := 变量值
f := float32(e)
//字符串类型可以通过+拼接
g := a + "foo"
循环
Go中的循环只有for一种,并没有while,for循环的格式跟C++很类似,区别就是for后的控制语句不需要加括号,如下
for j := 7; j < 9; j++ {
fmt.Println(j)
}
for后面可以不加控制语句,代表这是一个无限循环,当然可以用break跳出,也有continue等控制语句
for {
fmt.Println("这是一个无限循环")
break
}
if判断
if判断语句和C++的也很类似,唯一区别就是 if后面的判断语句不需要加括号,和for循环一样,都是把C++中有括号的地方给去掉了
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
switch
跟if和for循环一样,形式上也是把后面的括号给去掉了,还有一个区别就是Go语言中的switch匹配到对应的case并执行完对应的语句后不会进入下一个case而是直接退出,这就不需要我们在每个case后面加break了,我觉得这是一个很好的改进
a := 2
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
//执行完case 中的代码后直接退出switch,不会进入下一个case
case 3:
fmt.Println("three")
case 4, 5:
fmt.Println("four or five")
default:
fmt.Println("other")
}
当然和其他语言的一大区别是:switch后可以不写值,作用类似 if else,就像下面这样
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon")
}
数组
数组定义和变量类似,都可以先声明在赋值,或者定义的时候就初始化,在Go中可以直接通过关键字 len(数组名)的方式获取数组的长度
//先声明,后赋值
var a [5]int
a[4] = 100
//直接通过变量名访问其中的变量
fmt.Println("get:", a[2])
//获取数组a的长度
fmt.Println("len:", len(a))
//声明并初始化
b := [5]int{1, 2, 3, 4, 5}
原文地址:https://blog.csdn.net/weixin_74141526/article/details/143469983
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!