Golang 簡介與基本語法學習

Go,也被稱為 Golang,是一門由 Google 設計的開源編程語言。它旨在提供高效的開發體驗,同時具備并發性、內存安全和簡潔性。本篇博客將介紹 Golang 的基本語法和一些示例,幫助讀者快速入門這門令人著迷的語言。

簡介

Go 語言的設計靈感來自于 C 語言和 Pascal 語言,它具備靜態類型、并發性、垃圾回收等特性。Go 的編程風格簡潔明了,使得代碼易于理解和維護。它的并發模型通過 goroutines 和 channels 實現,并發編程變得更加容易。此外,Go 還具備自動垃圾回收功能,減輕了開發者的負擔。

基本語法學習

Hello World

package mainimport "fmt"func main() {fmt.Println("Hello, World!")
}

以上是一個簡單的 Hello World 程序,在終端運行時,輸出 “Hello, World!”。

變量與常量

package mainimport "fmt"func main() {var name string = "Alice"age := 30const pi = 3.1415926fmt.Println("Name:", name)fmt.Println("Age:", age)fmt.Println("Pi:", pi)
}

在上面的示例中,展示了如何聲明變量和常量,以及初始化它們的方法。

控制流

package mainimport "fmt"func main() {score := 85if score >= 90 {fmt.Println("A")} else if score >= 80 {fmt.Println("B")} else {fmt.Println("C")}for i := 0; i < 5; i++ {fmt.Println(i)}fruits := []string{"apple", "banana", "orange"}for _, fruit := range fruits {fmt.Println(fruit)}
}

上述示例展示了條件語句和循環的使用方法,以及如何遍歷數組。

循環示例

package mainimport "fmt"func main() {// for 循環示例fmt.Println("for 循環示例:")for i := 0; i < 5; i++ {fmt.Println(i)}// for 循環遍歷數組fmt.Println("\nfor 循環遍歷數組示例:")fruits := []string{"apple", "banana", "orange"}for index, fruit := range fruits {fmt.Printf("Index: %d, Fruit: %s\n", index, fruit)}// 使用 for 無限循環fmt.Println("\n使用 for 無限循環示例:")sum := 0for {sum++if sum > 5 {break}}fmt.Println("Sum:", sum)
}

判斷示例

package mainimport "fmt"func main() {// if 判斷示例fmt.Println("if 判斷示例:")score := 85if score >= 90 {fmt.Println("A")} else if score >= 80 {fmt.Println("B")} else {fmt.Println("C")}// switch 判斷示例fmt.Println("\nswitch 判斷示例:")day := "Monday"switch day {case "Monday":fmt.Println("Today is Monday.")case "Tuesday":fmt.Println("Today is Tuesday.")default:fmt.Println("Other day.")}// 使用 switch 判斷多個條件fmt.Println("\n使用 switch 判斷多個條件示例:")num := 3switch {case num < 0:fmt.Println("Negative number")case num > 0:fmt.Println("Positive number")default:fmt.Println("Zero")}
}

以上示例分別展示了循環和判斷的基本用法。希望這些示例能夠幫助您更好地理解 Golang 的語法特性。

函數

package mainimport "fmt"func add(a, b int) int {return a + b
}func main() {result := add(3, 5)fmt.Println("3 + 5 is:", result)
}

在上面的示例中,定義了一個簡單的函數 add,用來計算兩個整數的和,并在 main 函數中調用這個函數。

在 Go 語言中,導入模塊使用 import 關鍵字。以下是一個示例,展示了如何導入模塊:

package mainimport ("fmt""math/rand""time"
)func main() {// 使用 math 包中的函數fmt.Println("Random number:", rand.Intn(100))// 使用 time 包中的函數fmt.Println("Current time:", time.Now())
}

在上面的示例中,我們使用了 import 關鍵字導入了 fmtmath/randtime 三個模塊。可以通過修改代碼中的導入模塊的路徑來導入其他標準庫或自定義庫。

值得注意的是,在 Go 中慣例是將所有導入的包放在一對圓括號中,每個導入包占據一行。如果要導入多個包,可以通過同時導入它們來減少代碼行數。

結構體與方法

package mainimport "fmt"type Person struct {Name stringAge  int
}func (p Person) introduce() {fmt.Printf("Hello, my name is %s and I am %d years old.\n", p.Name, p.Age)
}func main() {person := Person{Name: "Bob", Age: 25}person.introduce()
}

這個示例展示了如何定義一個結構體 Person 和為結構體定義方法 introduce,以及如何調用這個方法。

結語

本篇博客介紹了 Golang 的基本語法和特性,希望能幫助讀者快速入門這門強大的編程語言。要深入學習更多關于 Golang 的內容,建議閱讀官方文檔和不同的教程。祝愿大家在使用 Golang 進行開發時取得成功!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715210.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715210.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715210.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一個腳本兩步計算材料Raman譜(附數據處理和繪圖腳本)

在以往推送中已經介紹了相當多的計算材料Raman的方法&#xff0c;使用的軟件主要為Phonopy-Spectroscopy&#xff0c;相關軟件還有vasp&#xff0c;phonopy&#xff0c;phono3py等。 Phonopy-Spectroscopy計算材料紅外和Raman光譜 Phonopy-Spectroscopy 計算紅外和拉曼光譜 也…

經典面試題從瀏覽器輸入URL到頁面加載的過程?

從輸入URL到頁面加載的過程涉及多個步驟&#xff0c;包括DNS解析、TCP連接、發送HTTP請求、服務器處理請求、瀏覽器解析渲染頁面以及斷開連接。具體如下&#xff1a; DNS解析&#xff1a;當你在瀏覽器中輸入一個URL時&#xff0c;瀏覽器首先需要將域名轉換為IP地址。這個過程稱…

QT中提升為自定義控件的方法

一&#xff0e;介紹 提升為自定義的控件用法&#xff1a;先要寫好自定義控件后&#xff0c;再添加&#xff0c;在頻繁使用同一控件時&#xff0c;的確非常的高效。 同時導入別人開發的控件操作方法也類似。 二&#xff0e;下面以自定義的QPushButton作一個很簡單的例子&#x…

MongoDB聚合運算符:$bottomN

$bottomN聚合運算符返回分組中指定順序的最后n個元素&#xff0c;如果分組中的元素數量小于n&#xff0c;則返回分組的全部元素。從MongoDB5.2開始支持。 語法 {$bottomN:{n: <expression>,sortBy: { <field1>: <sort order>, <field2>: <sort or…

精品SSM的教學管理系統課程作業成績

《[含文檔PPT源碼等]精品基于SSM的教學管理系統[包運行成功]》該項目含有源碼、文檔、PPT、配套開發軟件、軟件安裝教程、項目發布教程、包運行成功&#xff01; 軟件開發環境及開發工具&#xff1a; Java——涉及技術&#xff1a; 前端使用技術&#xff1a;HTML5,CSS3、Jav…

esp32 C3和S3 開發板電流對比

出去好奇用合宙家的 lot power 測了兩塊開發板的運行電流。 esp32 S3 (嘉立創開發板 8N8 版本) 模式 電流downloa模式49 毫安空代碼91 毫安light mode27 毫安deep mode25 毫安delay 40 毫安 esp32 C3 無串口芯片 &#xff08;合宙 9.9 元版本&#xff09; 模式 …

uniapp npx update-browserslist-db@lates 問題解決

在uniapp運行項目時&#xff0c;會有這種報錯&#xff0c;其實這是表明browserslistlatest版本低了&#xff0c;在催你升級版本&#xff0c;browserslistlatest是用來支持解析css用的&#xff0c;當然&#xff0c;你也可以直接忽略這個報錯提示&#xff0c;也可以正常運行項目。…

探索數據結構:深入了解順序表的奧秘

?? 歡迎大家來到貝蒂大講堂?? &#x1f388;&#x1f388;養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; 所屬專欄&#xff1a;數據結構與算法 貝蒂的主頁&#xff1a;Betty’s blog 1. 什么是順序表 順序表是用一段物理地址連續的存儲單元依次存儲數據元…

【初中生講機器學習】13. 決策樹算法一萬字詳解!一篇帶你看懂!

創建時間&#xff1a;2024-03-02 最后編輯時間&#xff1a;2024-03-02 作者&#xff1a;Geeker_LStar 你好呀~這里是 Geeker_LStar 的人工智能學習專欄&#xff0c;很高興遇見你~ 我是 Geeker_LStar&#xff0c;一名初三學生&#xff0c;熱愛計算機和數學&#xff0c;我們一起加…

取送貨問題(Pickup and Delivery Problem)

取送貨問題及其變體 廣義取送貨問題&#xff08;General Pickup and Delivery Problems&#xff0c;GPDP&#xff09;可以分為兩類&#xff1a; Vehicle Routing Problems with Backhauls&#xff0c;VRPB&#xff1a;從配送中心&#xff08;depot&#xff09;取貨運輸貨物到客…

測試/測試開發八股——找大廠測試實習基礎篇

第一部分:基礎概念 1. 軟件測試是什么? 在規定的條件下對一個產品或者程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。 軟件測試工程師的任務 2. 軟件測試工程師的任務 軟件測試工程師主要工作是檢查軟件是否有bug、是否具有穩定…

5.設備驅動程序

5. 設備驅動程序 Linux 內核是一個比較龐大的系統&#xff0c;深入理解內核可以減少在系統移植中的障礙。在系統移植中設備驅動開發是一項很復雜的工作&#xff0c;由于 Linux 內核提供了一部分源代碼&#xff0c;同時還提供了對某些公共部分的支持&#xff0c;例如&#xff0c…

數據結構與算法:堆

朋友們大家好啊&#xff0c;本篇文章來到堆的內容&#xff0c;堆是一種完全二叉樹&#xff0c;再介紹堆之前&#xff0c;我們首先對樹進行講解 樹與堆 1.樹的介紹1.1節點的分類 2.樹的存儲結構3.二叉樹的概念和結構3.1 二叉樹的特點3.2 特殊的二叉樹3.3二叉樹的存儲結構 4.堆的…

Acwing---1460. 我在哪?

我在哪&#xff1f; 1.題目2.基本思想3.代碼實現 1.題目 農夫約翰出門沿著馬路散步&#xff0c;但是他現在發現自己可能迷路了&#xff01; 沿路有一排共 N N N 個農場。 不幸的是農場并沒有編號&#xff0c;這使得約翰難以分辨他在這條路上所處的位置。 然而&#xff0c;…

Mybatis | 動態SQL

目錄: 動態SQL中的 “元素” :\<if>元素\<choose>、\<when>、\<otherwise>元素\<where>、\<trim>元素\<set>元素\<foreach>元素\<bind>元素 作者簡介 &#xff1a;一只大皮卡丘&#xff0c;計算機專業學生&#xff0c;正…

單細胞Seurat - 降維與細胞標記(4)

本系列持續更新Seurat單細胞分析教程&#xff0c;歡迎關注&#xff01; 非線形降維 Seurat 提供了幾種非線性降維技術&#xff0c;例如 tSNE 和 UMAP&#xff0c;來可視化和探索這些數據集。這些算法的目標是學習數據集中的底層結構&#xff0c;以便將相似的細胞放在低維空間中…

__vueParentComponent和__vue__獲取dom元素上的vue實例

vue2: 使用__vue__ const el document.querySelector(.xxx); const vueInstance el.__vue__;vue3: 使用 __vueParentComponent const el document.querySelector(.xxx); const vueInstance el.__vueParentComponent;

Python錯題集-4:NameError:(變量名錯誤)

1問題描述 Traceback (most recent call last): File "D:\pycharm\projects\1-可視化學習\8.3更改小提琴圖的中位數、均值、顏色等.py", line 8, in <module> violin_parts plt.violinplot(data, showmediansTrue, showmeansTrue) …

代碼隨想錄算法訓練營第四十四天 完全背包 、零錢兌換 II 、組合總和 Ⅳ

代碼隨想錄算法訓練營第四十四天 | 完全背包 、零錢兌換 II 、組合總和 Ⅳ 完全背包 題目鏈接&#xff1a;題目頁面 (kamacoder.com) 解釋一、01背包 一維 &#xff1a;為什么要倒序遍歷背包&#xff1f; 首先要明白二維數組的遞推過程&#xff0c;然后才能看懂二維變一維的…

【MATLAB源碼-第150期】基于matlab的開普勒優化算法(KOA)機器人柵格路徑規劃,輸出做短路徑圖和適應度曲線。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 開普勒優化算法&#xff08;Kepler Optimization Algorithm, KOA&#xff09;是一個虛構的、靈感來自天文學的優化算法&#xff0c;它借鑒了開普勒行星運動定律的概念來設計。在這個構想中&#xff0c;算法模仿行星圍繞太陽的…