【Golang】Go語言基礎語法

Go語言基礎語法

文章目錄

  • Go語言基礎語法
    • 一、Go標記
    • 二、行分隔符
    • 三、注釋
    • 四、標識符
    • 五、字符串連接
    • 六、關鍵字
    • 七、Go語言的空格
    • 八、格式化字符串

一、Go標記

  • Go程序可以由多個標記組成嗎,可以是關鍵字、標識符、常量、字符串、符號。如下Go語句由6個標記組成:
fmt.Println("Hello,World!")
  • 6個標記是(每一行一個)
1. fmt
2. .
3. Println
4. (
5. "Hello,World!"
6. )

二、行分隔符

  • 在Go程序中,一行代表一個語句結束。每個語句不需要像C家族中的其他語言一樣以分號;結尾,因為這些工作都將由Go編輯器自動完成。
  • 如果你打算將多個語句寫在同一行,它們則必須使用;人為區分,但在實際中我們并不鼓勵這種做法:
fmt.Println("Hello,World!")
fmt.Println("你好世界")

三、注釋

  • 注釋不會被編譯,每一個包應該有相關注釋
  • 單行注釋是最常見的注釋形式,你可以在任何地方使用以//開頭的單行注釋。多行注釋也叫塊注釋,均以/*,并以*/結尾。如:
// 單行注釋/*
我是多行注釋
你是什么注釋
*/

四、標識符

  • 標識符用來命令變量、類型等程序實體。一個表示符實際上就是一個或多個字母(AZ和az)數字(0-9)、下劃線_組成的序列,但是第一個字符必須是字母或下劃線而不能是數字。

  • 以下是有效的標識符

# 以下都是可以正常被使用的標識符
mahesh 
kumar 
abc
move_name
a_123
myname50
_temp
j
a23b9
retVal# 以下是無效的表示符
1ab(以數字開頭)
case(Go語言的關鍵字)
a+b(運算符是不允許的)

五、字符串連接

  • Go語言的字符串連接可以通過+實現:
package mainimport "fmt"func main() {fmt.Println("你好"+"Go")}
  • 以上實例輸出結果為
$ go run hello.go 
你好Go

六、關鍵字

  • 下面列舉了Go代碼中會使用到25個關鍵字或保留字:
breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar
  • 除了以上介紹的這些關鍵字,Go語言還有36個預定義標識符:
appendboolbytecapclosecomplexcomplex64complex128uint16
copyfalsefloat32float64imagintint8int16uint32
int32int64iotalenmakenewnilpanicuni64
printpringlnrealrecoverstringtrueuintuint8uintprt
  • 程序一般由關鍵字、常量、變量、運算符、類型和函數組成
  • 程序中可能會使用到這些分隔符:括號(),中括號[]和大括號{}
  • 程序中可能會使用到這些標點符號:.,;,:...

七、Go語言的空格

  • 在Go語言中,空格通常使用分割標識符、關鍵字、運算符和表達式,以提高代碼的可讀性
  • Go語言中變量的聲明必須使用空格隔開,如:
var x int  // 定義x變量的類型為int 整數
const Pi float64 = 3.1415926  // 定義常量 類型為float64浮點型 值為3.1415926
  • 在運算符和操作數之間要使用空格能讓程序更易閱讀
frunt=5+8  // 不規范寫法frunt = 5 + 8  //規范寫法,更加美觀
  • 在關鍵字和表達式之間要使用空格
package mainimport "fmt"func main() {var wzh =6+1;if wzh > 0 {fmt.Println(wzh)}}
  • 在函數調用時,函數名和左邊等號之間要使用空格,參數之間也要使用空格
result := add(2,3)

八、格式化字符串

  • Go語言中使用fmt.Sprintffmt.Printf格式化字符串并賦值給新串:
    • Sprintf根據格式化參數生成格式化的字符串并返回該字符串
    • Printf根據格式化參數生成格式化的字符串并寫入標準輸出
package mainimport "fmt"func main() {// %d 表示整型數字,%s 表示字符串  可以理解為占位符var stockcode int = 123var enddate string = "2024-11-9"var url string = "Code=%d&endDate=%s"var target_url = fmt.Sprintf(url,stockcode,enddate)fmt.Println(target_url)
}
  • 輸出結果為
Code=123&endDate=2024-11-9
  • 以下是使用Printf的效果
package mainimport "fmt"func main() {// %d 表示整型數字,%s 表示字符串  可以理解為占位符var stockcode int = 123var enddate string = "2024-11-9"var url string = "Code=%d&endDate=%s"fmt.Printf(url, stockcode, enddate)
}
  • 輸出結果為
Code=123&endDate=2024-11-9

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

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

相關文章

WebRTC指紋——深度分析(中篇)

1. 引言 在上篇中,我們建立了WebRTC審查規避系統分析的理論基礎,探討了技術背景和威脅模型。中篇將深入分析WebRTC協議棧中的具體識別特征,通過對多個主流WebRTC應用的實際協議分析,揭示不同實現之間存在的顯著差異。 這些協議層面的特征差異構成了審查系統進行指紋識別的…

谷粒商城篇章13--P340-P360--k8s/KubeSphere【高可用集群篇一】

1 k8s 1.1 簡介 Kubernetes 簡稱 k8s。 是用于自動部署, 擴展和管理容器化應用程序的開源系統。 中文官網: https://kubernetes.io/zh/ 中文社區: https://www.kubernetes.org.cn/ 官方文檔: https://kubernetes.io/zh/docs/h…

從零搭建 OpenCV 項目(新手向)-- 第二天 OpenCV圖像預處理(一)

目錄 一、圖像翻轉(鏡像翻轉) 1. 定義 2. OpenCV 函數 3. 數學表達 二、圖像仿射變換 1. 定義 2. 仿射變換的基本原理 3. OpenCV 函數 4. 圖像旋轉 5. 圖像平移 6. 圖像縮放 7. 圖像剪切 8. 為什么會出現黑色背景? 三、圖像色彩…

貪心算法Day6學習心得

第一道:738. 單調遞增的數字 - 力扣(LeetCode) 這道題目暴力算法肯定是最容易想到的,先附上暴力的代碼: class Solution { private:// 判斷一個數字的各位上是否是遞增bool checkNum(int num) {int max 10;while (n…

數據的評估與清洗篇---上手清理索引和列名

重命名索引和列名 在讀取數據時,如果我們發現數據的索引或者列名亂七八糟的,可以使用DataFrame的rename方法對它們進行重新命名。 df1.rename(index={...})df1.rename(columns={...}) 重命名索引 如果想改索引就把可選參數index指定為一個字典,針對索引,把要修改…

【ICML2025】時間序列|TimePro:炸裂!線性復雜度實現高效長程多元時間序列預測!

論文地址:https://arxiv.org/pdf/2505.20774 代碼地址:https://github.com/xwmaxwma/TimePro 為了更好地理解時間序列模型的理論與實現,推薦參考UP “ThePPP時間序列” 的教學視頻。該系列內容系統介紹了時間序列相關知識,并提供配…

2025真實面試試題分析-iOS客戶端開發

以下是對iOS客戶端開發工程師面試問題的分類整理、領域占比分析及高頻問題精選(基于??85道問題,總出現次數118次??)。按技術領域整合為??7大核心類別??,按占比排序并精選高頻問題標注優先級(1-5🌟&…

計算機網絡簡答題(大雪圣期末參考資料)

1、網絡性能指標/計算機網絡有哪些常用的性能指標?答:速率,帶寬,吞吐量,時延(發送時延、傳播時延、處理時延、排隊時延),時延帶寬積,往返時間RTT和信道(或網絡…

紅寶書單詞學習筆記 list 76-100

list 76NO.WordMeaning1staleadj. 不新鮮的;陳腐的2stalln. 小隔間;攤位;牲畜棚;v. 停頓;(使) 熄火;故意拖延3staplen. 訂書釘;主要產品;主要部分;主食;v. 用…

Vue3 學習教程,從入門到精通,Vue 3 計算屬性(Computed Properties)知識點詳解與案例代碼(15)

Vue 3 計算屬性(Computed Properties)知識點詳解與案例代碼 在 Vue 3 中,計算屬性(Computed Properties) 是用于基于響應式數據派生新數據的一種方式。計算屬性具有以下特點: 緩存性:只有在依賴…

2.5 PN-PTCP

Pro?net Precision Transparent Clock Protocol (PN-PTCP) PN-PTCP(精確透明時鐘協議)是一種專用于 Profinet 的 二層協議,其作用是為網絡中的設備提供高精度的時間同步。用于實現網絡設備的高精度時間同步。

WordPress與Typecho站點CloudFlare緩存優化實戰指南

文章目錄 WordPress與Typecho站點CloudFlare緩存加速全攻略 引言 一、CloudFlare緩存基礎原理 1.1 CloudFlare工作流程 1.2 緩存類型 二、基礎配置指南 2.1 CloudFlare賬戶設置 2.2 緩存配置 2.3 頁面規則設置 三、高級緩存策略 3.1 動態內容緩存 WordPress方案: Typecho方案:…

【OpenCV實現多圖像拼接】

文章目錄1 OpenCV 圖像拼接核心原理2 OpenCV 圖像拼接實現代碼方法一:使用 OpenCV 內置 Stitcher 類(推薦)方法二:手動實現核心步驟關鍵參數說明3 常見問題處理4 增量式圖像拼接(Incremental Image Stitching&#xff…

haproxy 算法

一、靜態算法按照事先定義好的規則輪詢公平調度,不關心后端服務器的當前負載、連接數和響應速度 等,且無法實時修改權重(只能為0和1,不支持其它值),只能靠重啟HAProxy生效。(不管后端死活)1.1、static-rr:基于權重的輪…

Go 的第一類對象與閉包

1. Go 的第一類對象(First-Class Citizens) 什么是第一類對象? 第一類對象是指能夠像 普通值 一樣使用的對象,通常可以賦值給變量、傳遞給函數、作為函數返回值等。在很多編程語言中,函數本身不被視為第一類對象&#…

深度分析Android多線程編程

理解并正確運用多線程是構建高性能、流暢、響應迅速的 Android 應用的關鍵,但也充滿挑戰和陷阱。 核心挑戰:UI 線程(主線程)的限制 唯一性: Android 應用只有一個主線程,負責處理所有用戶交互(觸…

uniapp在app中關于解決輸入框鍵盤彈出后遮住輸入框問題

問題描述: uniapp的app中,當表單頁面過長時,點擊下方的輸入框時,彈出鍵盤后會把輸入框給擋住,導致看不到輸入內容。 解決方案: 在page.json中,找到此頁面的配置,加上style中的softin…

二分查找----5.尋找旋轉排序數組中的最小值

題目鏈接 /** 數組在某處進行旋轉,分割為兩個獨立的遞增區間,找出數組的最小值;特殊情況:若旋轉次數是數組長度的倍數,則數組不變 特點: 常規情況: 數組被分割為兩個獨立的子區間,左半區的最小值大于右半區的最大值 依據數組長度,mid可能落在左半區也有可能落在右半區,最小值在…

Eureka-服務注冊,服務發現

在遠程調用的時候&#xff0c;我們寫的url是寫死的。 String url "<http://127.0.0.1:9090/product/>" orderInfo.getProductId();當換個機器&#xff0c;或者新增個機器&#xff0c;導致ip變換&#xff0c;從而使得 url 發生了變化&#xff0c;接著就需要去…

ubuntu24的一些小問題

截圖Keyboard -> Keyboard Shortcus -> View and customize Shortcus如上&#xff0c;可以修改默認的快捷按鍵。比如截圖按鍵可以修改。 ibus輸入法無法&#xff0c;輸入V異常問題 也是困擾了很久&#xff0c;發現是這樣的&#xff1a;https://github.com/libpinyin/ibus…