当前位置:首页 >时尚 >一文搞懂Go常用语法 基础语法几乎都差不多

一文搞懂Go常用语法 基础语法几乎都差不多

2024-05-21 05:38:10 [百科] 来源:避面尹邢网

一文搞懂Go常用语法

作者:沐风晓月&王中阳 开发 前端 一门语言中的文搞语法都是固定的,基础语法几乎都差不多,用语本篇文章涉及到 Go 入门脚本,文搞变量,用语条件语句,文搞函数等语法现象,用语用一篇文章梳理Go语言中可能出现的文搞所有语言现象,便于初学者学习和复习所用。用语

前言

本文是文搞根据阳哥 知识星球中的资料 整理的学习笔记,第一章关于Go语言中常见的用语语法现象。

我的文搞思考:

一门语言中的语法都是固定的,基础语法几乎都差不多,用语本篇文章涉及到 Go 入门脚本,文搞变量,用语条件语句,文搞函数等语法现象,用一篇文章梳理Go语言中可能出现的所有语言现象,便于初学者学习和复习所用。

一文搞懂Go常用语法 基础语法几乎都差不多

一. Go 语言的 helloworld

源文件:

一文搞懂Go常用语法 基础语法几乎都差不多

文件名:hello.go

一文搞懂Go常用语法 基础语法几乎都差不多

package main

import "fmt"

func main() {
fmt.Println("helloworld")

}

对于第一个代码的解释:

  • 源文件使用 UTF-8 编码,对 Unicode 支持良好,每个源文件都属于包的一部分,在文件头部用 package 声明所属的包名称。
  • 以.go 作为文件的拓展名
  • 相比其他语言,语句结束的分号会被默认省略
  • import 是用来导入标准库或者第三方包

其他注意事项:

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

可以直接运行:

go run main.go

图片

二. 变量

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

1.定义两个变量并输出

package main

import "fmt"

func main() {
var x int32
var y = "hello,world"
fmt.Println("输出的结果为", x,y)
}

输出结果:

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

注意点:

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

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

package main

import "fmt"

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

三. 表达式

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

3.1 if 语句

package main

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

3.2 switch 语句

package main

func main () {
x :=100
switch {
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

执行结果:

图片

3.3 for 语句

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

案例一:
package main

func main () {
//打印0 1 2 3 4
for i:=0 ;i<5;i++{
println(i)
}

//打印 4 3 2 1 0
for i :=4;i>=0 ;i--{
println(i)
}
}

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

案例二:
package main

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

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

package main

func main () {
x :=10
for {
println(x)
x--
if x < 0{
break
}
}
}

图片

案例四:

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

package main

func main () {

x :=[]int{ 100,101,102}
for i,n :=range x {
println(i,n)
}
}

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

索引为 0 的时候值是 100

运行结果:

图片

四. 函数

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

package main

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 main

import(
"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 main

import "fmt"

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

}

运行结果:

图片

总结

本文后续还会持续增加一些语法现象,欢迎大家收藏备用。

本文转载自微信公众号「 程序员升级打怪之旅」,作者「王中阳Go」,可以通过以下二维码关注。

转载本文请联系「 程序员升级打怪之旅」公众号。

责任编辑:武晓燕 来源: 程序员升职加薪之旅 Go语法脚本

(责任编辑:百科)

    推荐文章
    • 邮政银行小微易贷申请流程是怎样的 可以网上提出申请吗?

      邮政银行小微易贷申请流程是怎样的 可以网上提出申请吗?很多中小微企业碰到资金周转不开的时候,会去贷款来维持企业正常运营,其中邮政银行小微易贷就是一款经营性贷款,适合中小微企业融资。考虑到有不少企业主和法人代表对邮政银行小微易贷申请流程不清楚,这里就来简单 ...[详细]
    • 全网公开IP属地,你的位置“露馅”了

      全网公开IP属地,你的位置“露馅”了全网公开IP属地,你的位置“露馅”了原创 精选 作者:路遥 2022-08-15 10:47:01网络 网络管理 不仅是发布内容会显示IP属地,就连评论、投票等也会显示IP位置信息。用户现在的一言一行 ...[详细]
    • 继续承压:亚马逊平板战苹果路还长?

      继续承压:亚马逊平板战苹果路还长?继续承压:亚马逊平板战苹果路还长?作者:孙永杰 2012-02-01 10:10:07移动开发 和之前的Kindle一样,亚马逊在本季的财报上并未公布Kindle及Kindle Fire的具体销售数字 ...[详细]
    • 外媒评“今年最值得买的16大手机品牌” 小米、诺基亚在列 -

      外媒评“今年最值得买的16大手机品牌” 小米、诺基亚在列 -【手机中国新闻】印度是世界上最大的手机市场之一,为消费者提供了大量的选择。对于该国消费者来说,有这么多的手机品牌可供选择,确定哪家公司可以提供最合适的产品可能是一项挑战。据手机中国了解,外媒评选出了“ ...[详细]
    • 凯撒文化(002425.SZ)公布消息:一季度净利润预增80%

      凯撒文化(002425.SZ)公布消息:一季度净利润预增80%凯撒文化(002425.SZ)公布,预计2021年度第一季度归属于上市公司股东的净利润14690.2万元-17138.56万元,同比增长80%-110%。与上年同期相比,报告期归属于上市公司股东的净利 ...[详细]
    • 中国人心目中的国货品牌Top20出炉 华为第一 小米亮了 -

      中国人心目中的国货品牌Top20出炉 华为第一 小米亮了 -【CNMO新闻】目前,随着环境和观念的改变,以及中国品牌自身的发展,不少消费者开始大力支持中国的国货品牌。而近日,CNMO注意到,有网友罗列出了一张“中国人心中的国货品牌Top20”,感兴趣的网友可以 ...[详细]
    • 23吋商务一体机 戴尔Vostro成就360

      23吋商务一体机 戴尔Vostro成就36023吋商务一体机 戴尔Vostro成就360作者:胡浩 2012-04-18 14:59:50商务办公 戴尔Vostro成就360(V360D-716)是一款采用SNB平台的奔腾双核G630处理器以及 ...[详细]
    • 卡牌类游戏图片广告素材如何制作?

      卡牌类游戏图片广告素材如何制作?在竞争激烈、一片红海的游戏市场。越来越多的游戏开发商在推广自家产品上绞尽脑汁,卡牌类也不例外。在买量素材的选择上,视频能更全面的展示产品,但买量成本较高;图片类素材成本相对较低,但展示产品信息又有限。 ...[详细]
    • 借呗怎么变成信用贷了 借呗变成信用贷还能借款吗?

      借呗怎么变成信用贷了 借呗变成信用贷还能借款吗?借呗是大家耳熟能详的消费信用贷款,并且有很多人都在上面借过钱。可是有不少人发现自己的借呗变成了信用贷,就不是很清楚还能不能借款。那么借呗变成信用贷还能借款吗?这里就给大家来简单介绍下。1、借呗怎么变成 ...[详细]
    • 拼多多怎么关拼小圈

      拼多多怎么关拼小圈拼多多软件中有海量的商品可以购买,也有很多的功能可以使用,有的用户就比较好奇了拼多多怎么关拼小圈呢?现在就和小编来看一下拼多多关拼小圈的方法吧。1.首先打开拼多多进入到首页之后点击右下角的【个人中心】 ...[详细]
    热点阅读