您正在使用IE低版浏览器,为了您的雷峰网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
雷峰网
  • AI研习社
  • 雷峰网公开课
  • 活动中心
  • GAIR
  • 专题
  • 爱搞机
此为临时链接,仅用于文章预览,将在时失效
人工智能开发者 正文
发私信给AI研习社-译站
发送

0

Go编程语言基础知识简介

本文作者: AI研习社-译站 2020-10-30 16:11
导语:Go是一种开源编程语言,可以轻松构建简单、可靠和高效的软件。

译者:AI研习社( Maker)

双语原文链接: 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爱好者。欢迎与译站一起,学习新知,分享成长。

Go编程语言基础知识简介

雷峰网版权文章,未经授权禁止转载。详情见 转载须知。

Go编程语言基础知识简介

0人收藏
分享:
相关文章
  • 2013年图灵奖得主 Leslie Lamport 专访:程序员需要 ...
  • 2022美国科学院院士名单公布:图灵奖得主、龙书作者 ...
  • 微软研究院被曝拒招国防七子高校及北邮大学的实习生 ...
  • 图灵奖得主、《龙书》作者万字长文讲解:什么是「抽 ...
AI研习社-译站

知情人士

AI研习社(yanxishe.com)译站频道,传播前沿人工智能知识,让语言不再成为学习知识的门槛。(原雷锋字幕组)

扫描关注作者微信

发私信
当月热门文章
最新文章
  • 专访纽约城市大学田英利教授:用多通道、多模态的方法「看懂」手语
  • Sora 面世,视频生成的 GPT-3 时刻来了
  • 2024,智谱如何更快?
  • Character.ai 向左,MiniMax Talkie 向右
  • 独家|百度智能云 AI 应用产品部总经理刘倩将离职
  • 李开复说话算数:零一万物大模型首次发布,AI 2.0 正在路上
热门搜索
智能家居 智能手表 阿里云 联想 OpenAI ADAS 硬创公开课 paypal 雷穿戴 锤子 李飞飞
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请 验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以 设置密码以方便用邮箱登录
立即设置 以后再说

深圳SEO优化公司西乡关键词按天扣费推荐德阳SEO按天收费推荐清远百度seo推荐福永网站优化推广多少钱贵港seo报价重庆网站建设设计公司铜陵百度标王公司潜江百度竞价报价凉山品牌网站设计公司钦州百度seo推荐秦皇岛seo网站优化推荐保山seo公司晋中seo哪家好鄂州英文网站建设价格中山网站推广系统价格海北百度网站优化哪家好保定网站优化排名报价沙井网站优化按天计费报价大庆seo排名价格成都seo网站推广推荐坂田百度标王哪家好马鞍山网站优化排名价格巢湖企业网站建设哪家好东莞百度seo哪家好辽阳关键词按天扣费报价伊犁百度竞价推荐思茅网站优化按天扣费报价大丰网站优化软件徐州外贸网站建设多少钱怀化百搜标王报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化