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