Go编程语言基础知识简介

Go编程语言基础知识简介
2020年10月30日 16:11 雷锋网

原标题:Go编程语言基础知识简介

译者:AI研习社

双语原文链接:https://www.yanxishe.com/TextTranslation/2943

Go是一种开源编程语言,大约在11年前首次出现,与30岁的Python和35岁的C++相比,这门语言非常年轻。

Go是由谷歌的 Robert Griesemer, Rob Pike和 Ken Thompson设计的,目的是让开发人员更快、更容易地进行软件开发。

根据HackerEarth调查,Go是最受学生和专业开发人员欢迎的编程语言。

事实上, Go 是最容易学的语言之一。在这篇文章中,我将尝试介绍 Go的一些基本概念。我希望这篇文章能激励您进一步学习这门语言。我们开始吧!

Go是一种开源编程语言,可以轻松构建简单、可靠和高效的软件。

Hello World

这是写出“Hello World”的GO代码。

package main    
import "fmt"     
func main () {    
fmt.Println("Hello World")    
}

第一行称为 程序包说明,每个GO程序都以 程序包说明 开始。

下一行import“fmt”是一个import语句。IMPORT关键字允许我们从其他包导入和使用代码。fmt是format的缩写,但通常发音为‘fumpt’。你可以随便叫它什么。

Main()函数是一个特殊函数。带有程序包说明 的文件将自动运行main()函数。

在主函数块中,我们有fmt.Println(“Hello World”).println是用于打印文本的函数,在我们的示例中是Hello World。

变量和常量

在GO中,我们可以使用变量类型声明变量,也可以使用var关键字使用初始化器声明变量。还可以一次声明多个不同类型的变量。

var a, b int = 0, 1    
func main() {    
var c, d, e = true, "GO", 2.33    
f := -5    
fmt.Println(a, b, c, d, e, f)    
}

如果没有提到变量的类型,则变量将采用初始值设定项的类型。

在函数内部,可以使用:=Short赋值语句代替var声明。但是,这在函数外部是不可能的。

常量的声明类似于变量,但使用了const关键字。常量可以是字符、字符串、布尔值或数字值。

循环和条件语句For循环

GO只有for循环构造。For循环有三个用分号分隔的组件:

Init语句:在第一次迭代之前执行

条件表达式:在每次迭代之前求值

POST语句:在每次迭代结束时执行

sum := 0    
for i := 0; i < 10; i++ {    
sum += i    
}    
fmt.Println(sum)

fmt.Println(sum)Init和POST语句是可选的。如果将init和POST语句与分号一起删除,则循环将变成WHILE循环。 当条件表达式也被移除并无限运行时,循环变成无限循环。

IF语句

if num := 9; num < 0 {    
fmt.Println(num, "is negative")    
} else if num < 10 {    
fmt.Println(num, "has 1 digit")    
} else {    
fmt.Println(num, "has multiple digits")    
}

Go的if语句与其他语言的语句类似。在If Short语句中声明的变量也可以在任何Else块中使用。

在GO中没有三元数-IF,所以即使对于基本条件,我们也需要使用完整的IF语句。

(注:GO也有GET SWITCH语句,但为简单起见,省略了它。您可以在此处了解SWITCH语句)

函数

一个函数接受两个int,并将它们的和作为int返回。

if num := 9; num < 0 {    
fmt.Println(num, "is negative")    
} else if num < 10 {    
fmt.Println(num, "has 1 digit")    
} else {    
fmt.Println(num, "has multiple digits")    
}

一个函数可以接受零个或多个参数。变量的类型在变量名之后。

当有多个相同类型的连续变量传递给函数时,可以从除最后一个变量之外的所有变量中省略该类型。

结构、数组、切片和映射
结构

GO的结构是字段的集合。它们对于将数据组合在一起形成记录非常有用。

结构字段使用点进行访问。下面是该结构的一个示例。

type Vertex struct {    
X int    
Y int    
}    
func main() {    
v := Vertex{1, 2}    
fmt.Println(v.X,v.Y)    
}
数组

表达式var a[10]int将变量声明为10个整数的数组。无法调整数组的大小,因为数组的长度是其类型的一部分。

我们可以使用数组[INDEX]=VALUE在索引处设置值,并使用ARRAY[INDEX]获得值。

数组也可以在一行中声明和初始化。缺省情况下,数组为零值

var a [2]string    
a[0] = "Hello"    
a[1] = "World"    
fmt.Println(a[0], a[1])    
fmt.Println(a)    
primes := [6]int{2, 3, 5, 7, 11, 13}    
fmt.Println(primes)
切片

切片是通过指定两个索引形成的,下限和上界用冒号a[LOW:HIGH]分隔

与具有固定大小的数组不同,切片是动态调整大小的。切片比数组更常见。

内置的APPEND函数将一个或多个新值添加到切片。

primes := [6]int{2, 3, 5, 7, 11, 13}    
var s []int = primes[1:4]    
fmt.Println(s)
Maps

Maps是Go内置的关联数据类型(在某些语言中称为DICTS)。映射将关键点映射到值。要创建空映射,请使用内置的make:make(map[key-type]val-type)

可以使用NAME[KEY]=VAL语法设置键/值。可以使用name[key]获取键的值。

打印地图将显示其所有键/值对。下面是使用地图的示例。

m := make(map[string]int)    
m["A"] = 1    
m["B"] = 2    
fmt.Println("map:", m)    
n := map[string]int{"foo": 1, "bar": 2}    
fmt.Println("map:", n)    
}
进一步阅读

我很高兴你花了这么长时间。我建议你去看看下面的网站s-A Tour of Go in Golang,并以身作则,深入了解这门语言。

围棋可以从其官方网站下载。Alan A.A.Donovan和Brian W.Kernighan所著的围棋编程语言是一本很好的入门书。围棋编程蓝图和介绍围棋也是推荐的。

Go编程语言基础知识简介

Source https://learn.go.dev/

AI研习社是AI学术青年和AI开发者技术交流的在线社区。我们与高校、学术机构和产业界合作,通过提供学习、实战和求职服务,为AI学术青年和开发者的交流互助和职业发展打造一站式平台,致力成为中国最大的科技创新人才聚集地。

如果,你也是位热爱分享的AI爱好者。欢迎与译站一起,学习新知,分享成长。

新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片

新浪首页 新浪众测 语音播报 相关新闻 返回顶部