一文带你回顾go语言常见语法现象
创始人
2024-06-02 01:24:15
0

在这里插入图片描述

前言

一门语言中的语法现象都是固定的,基础语法几乎都差不多,本篇文章涉及到go入门脚本,变量,条件语句,函数等语法现象的案例, 用一篇文章梳理go基础中可能出现的所有语言现象。

先从宏观上了解一些语法点写法,再在后面的文章中从微观角度仔细去剖析每个出现的语法现象。

本文的初衷是用一篇文章涵盖go语言常见的语法现象案例,便于后期回顾复习使用,可以先点赞收藏,后续会持续更新。

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云博客专家
😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人,一起加油进步
🍺🍺🍺 💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

文章目录

  • 前言
  • 一. go语言的helloworld
  • 二. 变量
  • 三. 表达式
    • 3.1 if语句
    • 3.2 switch语句
    • 3.3 for 语句
  • 四. 函数
  • 五. 数据
    • 5.1 切片
    • 5.2 字典
  • 总结

一. go语言的helloworld

源文件:

文件名: hello.go

package mainimport "fmt"func main()  {fmt.Println("hellworld")}

对于第一个代码的解释:

  • 源文件使用UTF-8编码,对Unicode支持良好,每个源文件都属于包的一部分,在文件头部用package声明所属的包名称。

  • .go作为文件的拓展名,语句结束的分号会被默认省略。

  • import是用来导入标准库或者第三方包

其他注意事项:

  • fmt.Println这里的Println的p要大写;
  • 导入的包,如果有多余的可以删掉

可以直接运行:

go run main.go

二. 变量

go语言中使用var定义变量,支持类型推断

案例一: 定义两个变量并输出

package mainimport "fmt"func main()  {//fmt.Println("hellworld")var x int32var y = "hello,world"fmt.Println("输出的结果为", x,y)
}

输出结果:

PS C:\go\src\test01> go run .\variable.go
输出的结果为 0 hello,world

注意点:

  • 编译器会把变量的初始值初始化为零,避免出现意外
  • PrintfPringln是有区别的,不能通用。

在函数内部,可以省略的VAR 关键字,但要注意赋值符号的变化:

package mainimport "fmt"func main()  {//fmt.Println("hellworld")y := "hello,world"fmt.Println("输出的结果为",y)
}

三. 表达式

go语言有三种流程控制语句

3.1 if语句

package main//import "fmt"func main ()  {var x = 100if x >0 {println("x =",x)}else if x < 0 {println("x =",-x)}else{println("x =",0)}}

3.2 switch语句

package main//import "fmt"func main ()  {x :=100switch  {case x>0:println("x")case x<0:println("-x")//case x!=0://	println("0")case x == 0:println("0")default:println("0")}}

这里需要注意一点:

  • x=0表示赋值,x==0表示 ```等于````.

所以在这个case语句中, case x=0: 会报错,但可以改为!=不等于0

执行结果:

PS C:\go\src\test01> go run .\variable.go
x

3.3 for 语句

for 循环的用法比较多,我们来举几个例子:

案例一:

package main//import "fmt"func main ()  {//打印0 1 2 3 4 for i:=0 ;i<5;i++{println(i)}//打印 4 3 2 1 0for i :=4;i>=0 ;i--{println(i)}
}

下面的for循环,类似于while循环的例子,比如while(x <5 {})

案例二:

package main//import "fmt"func main ()  {x :=0//打印0 1 2 3 4for x<5{println(x)x++}
}

案例三:打印从10到0的值

package main//import "fmt"func main ()  {x :=10for {println(x)x--if x < 0{break}}
}

有时候也会对列表进行遍历,列表定义:x:= []int{100,101,102}

案例四:

package main//import "fmt"func main ()  {x :=[]int{100,101,102}for i,n :=range x {println(i,n)}
}

在go语言中,遍历数据或切片时可以用range,range会产生两个值,分别是数据的索引与值,就像案例四中,iv分别表示索引和值:

索引为0的时候值是100

运行结果:

PS C:\go\src\test01> go run .\variable.go
0 100
1 101
2 102

四. 函数

函数可以定义多个返回值,甚至对其命名

package main//import "fmt"import ("errors""fmt"
)func div(a,b int) (int,error)  {if b == 0 {return 0,errors.New("division by zero")}return a/b,nil
}func main(){a,b := 9,2  //定义多个变量c,err := div(a,b) //接收多个值fmt.Println(c,err)fmt.Println(a,b)
}

这里遇到一个小插曲,如下图:

发现代码会提示b没有定义,在a/b位置有下划线,但执行结果是对的。 经过反复排查和沟通,最后发现是SDK 没有配置

在这里沐风晓月感谢各位帮助过我的小伙伴。

五. 数据

5.1 切片

切片可以实现类似动态数组的功能:

package mainimport("fmt"
)func main()  {x := make([]int ,0,5) //创建容量为5的切片for i :=0;i<10;i++{x=append(x,i)  //追加数据,如果超过容量,自动分配更大空间}fmt.Println(x)
}

输出结果:

[0 1 2 3 4 5 6 7 8 9]

5.2 字典

package mainimport "fmt"func main() {m:=make(map[string]int) //创建字典类型对象m["a"] =1x,ok := m["b"]fmt.Println(x,ok)y,ok := m["a"]fmt.Println(y,ok)}

运行结果:

PS C:\go\src\test01> go run .\variable.go
0 false
1 true

总结

本文后续还会持续增加一些语法现象,可以收藏备用,后续全部整理完后,达到用一篇文章复习所有go语言常见语法点目的。

💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 博客主页:mufeng.blog.csdn.net
💕 本文由沐风晓月原创,首发于CSDN博客
💕 全力以赴,持续学习,不负如来不负卿

相关内容

热门资讯

安卓系统弹出窗口问题,安卓系统... 手机里的安卓系统突然弹出窗口,是不是让你心头一紧,手忙脚乱?别急,今天就来和你聊聊这个让人头疼的安卓...
安卓系统加苹果战队,科技竞技的... 你知道吗?在科技的世界里,有一场特别的较量正在悄然上演。那就是安卓系统和苹果战队的对决!这两大操作系...
miui与安卓系统关系,深度定... 亲爱的读者,你是否曾在使用手机时,对那熟悉的MIUI界面感到亲切又好奇?今天,就让我们一起揭开MIU...
安卓原生系统手机哪些,探索安卓... 你有没有想过,为什么你的手机总是那么流畅,那么强大?这背后,可是有一个默默无闻的英雄——安卓原生系统...
安卓系统cpu天梯图,性能比拼... 你有没有发现,手机里的安卓系统,就像是我们的好朋友,每天都在默默无闻地工作着。而它的心脏,也就是CP...
安卓系统通知时间,掌握生活节奏... 你有没有发现,手机里的安卓系统通知时间有时候会让人有点头疼呢?有时候它准时得像军号,有时候又懒洋洋得...
安卓系统默认安装位置,默认安装... 你有没有发现,每次新买一台安卓手机,打开它的时候,那些默认安装的APP总是占据着固定的位置?是不是好...
安卓系统内存优化模式,高效运行... 手机用久了是不是感觉越来越卡?别急,今天就来给你揭秘安卓系统内存优化模式的秘密,让你的手机焕发新生!...
零信任软件安卓系统,零信任软件... 你知道吗?在科技飞速发展的今天,手机已经成为了我们生活中不可或缺的一部分。而在这其中,安卓系统凭借其...
怎样更改安卓系统时间,安卓系统... 手机时间不对了?别急,我来教你怎样更改安卓系统时间,让你手机上的时间瞬间回到正轨!一、直接调整系统时...
鸿蒙系统离不开安卓,基于安卓的... 你知道吗?最近在科技圈里,有一个话题可是引起了不小的讨论呢!那就是鸿蒙系统与安卓的关系。很多人都在问...
安卓系统怎么重启应用,安卓系统... 手机里的安卓应用突然卡住了,是不是让你头疼不已?别急,今天就来教你怎么轻松重启安卓系统中的应用,让你...
安卓系统开启远程登录,安卓系统... 你有没有想过,即使你不在家,也能轻松管理你的安卓设备呢?没错,就是安卓系统开启远程登录!这可是个超级...
黑域安卓系统4.0,创新功能与... 亲爱的读者们,你是否对安卓系统有所好奇?今天,我要带你深入探索一个神秘而独特的存在——黑域安卓系统4...
安卓系统基础教程,从入门到精通 你有没有想过,你的安卓手机里那些神奇的软件和功能是怎么来的呢?其实,这一切都离不开安卓系统的基础。今...
安卓系统盒子停服,回顾辉煌历程 你有没有发现,最近你的安卓系统盒子突然有点不对劲?是不是觉得它变得有点“懒”,不再像以前那样活泼了呢...
安卓系统怎么下蝙蝠,安卓系统下... 你有没有想过,在安卓手机上下载蝙蝠APP,竟然也能成为一门学问呢?没错,就是那个让你随时随地畅游网络...
安卓系统能播放蓝光,安卓系统轻... 你有没有想过,你的安卓手机或者平板,竟然能播放那些高清到让人惊艳的蓝光电影呢?没错,就是那种画质细腻...
汽车系统识别到安卓,智能驾驶新... 你知道吗?最近汽车界可是掀起了一股新潮流呢!那就是汽车系统识别到安卓,这可不是简单的兼容,而是深度融...
工程业务系统安卓版,助力项目管... 你知道吗?最近我在手机上发现了一个超级实用的工程业务系统安卓版,简直让我爱不释手!这款应用不仅功能强...