自学内容网 自学内容网

Go语言学习笔记 (基础数据类型和控制语句)

目录

Hello World!

标准库

变量声明

循环

if判断

switch

数组


最近参加字节跳动的青训营项目,因为字节现在基本全是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)!