0
本文作者: AI研習(xí)社-譯站 | 2020-10-30 16:11 |
譯者:AI研習(xí)社(Maker)
雙語(yǔ)原文鏈接:https://www.yanxishe.com/TextTranslation/2943
Go是一種開(kāi)源編程語(yǔ)言,大約在11年前首次出現(xiàn),與30歲的Python和35歲的C++相比,這門(mén)語(yǔ)言非常年輕。
Go是由谷歌的 Robert Griesemer, Rob Pike和 Ken Thompson設(shè)計(jì)的,目的是讓開(kāi)發(fā)人員更快、更容易地進(jìn)行軟件開(kāi)發(fā)。
根據(jù)HackerEarth調(diào)查,Go是最受學(xué)生和專(zhuān)業(yè)開(kāi)發(fā)人員歡迎的編程語(yǔ)言。
事實(shí)上, Go 是最容易學(xué)的語(yǔ)言之一。在這篇文章中,我將嘗試介紹 Go的一些基本概念。我希望這篇文章能激勵(lì)您進(jìn)一步學(xué)習(xí)這門(mén)語(yǔ)言。我們開(kāi)始吧!
Go是一種開(kāi)源編程語(yǔ)言,可以輕松構(gòu)建簡(jiǎn)單、可靠和高效的軟件。
這是寫(xiě)出“Hello World”的GO代碼。
package main import "fmt" func main () { fmt.Println("Hello World") } |
第一行稱(chēng)為 程序包說(shuō)明,每個(gè)GO程序都以 程序包說(shuō)明 開(kāi)始。
下一行import“fmt”是一個(gè)import語(yǔ)句。IMPORT關(guān)鍵字允許我們從其他包導(dǎo)入和使用代碼。fmt是format的縮寫(xiě),但通常發(fā)音為‘fumpt’。你可以隨便叫它什么。
Main()函數(shù)是一個(gè)特殊函數(shù)。帶有程序包說(shuō)明 的文件將自動(dòng)運(yùn)行main()函數(shù)。
在主函數(shù)塊中,我們有fmt.Println(“Hello World”).println是用于打印文本的函數(shù),在我們的示例中是Hello World。
在GO中,我們可以使用變量類(lèi)型聲明變量,也可以使用var關(guān)鍵字使用初始化器聲明變量。還可以一次聲明多個(gè)不同類(lèi)型的變量。
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) } |
如果沒(méi)有提到變量的類(lèi)型,則變量將采用初始值設(shè)定項(xiàng)的類(lèi)型。
在函數(shù)內(nèi)部,可以使用:=Short賦值語(yǔ)句代替var聲明。但是,這在函數(shù)外部是不可能的。
常量的聲明類(lèi)似于變量,但使用了const關(guān)鍵字。常量可以是字符、字符串、布爾值或數(shù)字值。
GO只有for循環(huán)構(gòu)造。For循環(huán)有三個(gè)用分號(hào)分隔的組件:
Init語(yǔ)句:在第一次迭代之前執(zhí)行
條件表達(dá)式:在每次迭代之前求值
POST語(yǔ)句:在每次迭代結(jié)束時(shí)執(zhí)行
sum := 0 |
fmt.Println(sum)Init和POST語(yǔ)句是可選的。如果將init和POST語(yǔ)句與分號(hào)一起刪除,則循環(huán)將變成WHILE循環(huán)。 當(dāng)條件表達(dá)式也被移除并無(wú)限運(yùn)行時(shí),循環(huán)變成無(wú)限循環(huán)。
if num := 9; num < 0 { |
Go的if語(yǔ)句與其他語(yǔ)言的語(yǔ)句類(lèi)似。在If Short語(yǔ)句中聲明的變量也可以在任何Else塊中使用。
在GO中沒(méi)有三元數(shù)-IF,所以即使對(duì)于基本條件,我們也需要使用完整的IF語(yǔ)句。
(注:GO也有GET SWITCH語(yǔ)句,但為簡(jiǎn)單起見(jiàn),省略了它。您可以在此處了解SWITCH語(yǔ)句)
一個(gè)函數(shù)接受兩個(gè)int,并將它們的和作為int返回。
if num := 9; num < 0 { |
一個(gè)函數(shù)可以接受零個(gè)或多個(gè)參數(shù)。變量的類(lèi)型在變量名之后。
當(dāng)有多個(gè)相同類(lèi)型的連續(xù)變量傳遞給函數(shù)時(shí),可以從除最后一個(gè)變量之外的所有變量中省略該類(lèi)型。
GO的結(jié)構(gòu)是字段的集合。它們對(duì)于將數(shù)據(jù)組合在一起形成記錄非常有用。
結(jié)構(gòu)字段使用點(diǎn)進(jìn)行訪(fǎng)問(wèn)。下面是該結(jié)構(gòu)的一個(gè)示例。
type Vertex struct { X int Y int } func main() { v := Vertex{1, 2} fmt.Println(v.X,v.Y) } |
表達(dá)式var a[10]int將變量聲明為10個(gè)整數(shù)的數(shù)組。無(wú)法調(diào)整數(shù)組的大小,因?yàn)閿?shù)組的長(zhǎng)度是其類(lèi)型的一部分。
我們可以使用數(shù)組[INDEX]=VALUE在索引處設(shè)置值,并使用ARRAY[INDEX]獲得值。
數(shù)組也可以在一行中聲明和初始化。缺省情況下,數(shù)組為零值
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) |
切片是通過(guò)指定兩個(gè)索引形成的,下限和上界用冒號(hào)a[LOW:HIGH]分隔
與具有固定大小的數(shù)組不同,切片是動(dòng)態(tài)調(diào)整大小的。切片比數(shù)組更常見(jiàn)。
內(nèi)置的APPEND函數(shù)將一個(gè)或多個(gè)新值添加到切片。
primes := [6]int{2, 3, 5, 7, 11, 13} var s []int = primes[1:4] fmt.Println(s) |
Maps是Go內(nèi)置的關(guān)聯(lián)數(shù)據(jù)類(lèi)型(在某些語(yǔ)言中稱(chēng)為DICTS)。映射將關(guān)鍵點(diǎn)映射到值。要?jiǎng)?chuàng)建空映射,請(qǐng)使用內(nèi)置的make:make(map[key-type]val-type)
可以使用NAME[KEY]=VAL語(yǔ)法設(shè)置鍵/值??梢允褂胣ame[key]獲取鍵的值。
打印地圖將顯示其所有鍵/值對(duì)。下面是使用地圖的示例。
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) } |
我很高興你花了這么長(zhǎng)時(shí)間。我建議你去看看下面的網(wǎng)站s-A Tour of Go in Golang,并以身作則,深入了解這門(mén)語(yǔ)言。
圍棋可以從其官方網(wǎng)站下載。Alan A.A.Donovan和Brian W.Kernighan所著的圍棋編程語(yǔ)言是一本很好的入門(mén)書(shū)。圍棋編程藍(lán)圖和介紹圍棋也是推薦的。
Source https://learn.go.dev/
AI研習(xí)社是AI學(xué)術(shù)青年和AI開(kāi)發(fā)者技術(shù)交流的在線(xiàn)社區(qū)。我們與高校、學(xué)術(shù)機(jī)構(gòu)和產(chǎn)業(yè)界合作,通過(guò)提供學(xué)習(xí)、實(shí)戰(zhàn)和求職服務(wù),為AI學(xué)術(shù)青年和開(kāi)發(fā)者的交流互助和職業(yè)發(fā)展打造一站式平臺(tái),致力成為中國(guó)最大的科技創(chuàng)新人才聚集地。
如果,你也是位熱愛(ài)分享的AI愛(ài)好者。歡迎與譯站一起,學(xué)習(xí)新知,分享成長(zhǎng)。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。