Go初級二

Go初級入門(二):變量、常量與數據類型

大家好,歡迎來到《Go初級入門》系列的第二篇!在上一篇文章中,我們介紹了如何安裝Go環境并運行第一個“Hello, World”程序。今天,我們將深入Go語言的基礎語法,重點學習 變量、常量 以及 常用的數據類型

掌握這些基礎知識,是你邁向Go語言開發的第一步。讓我們開始吧!


一、變量(Variables)

變量是程序中用于存儲數據的“容器”。在Go中,變量必須先聲明后使用。

1. 變量聲明語法

Go提供了多種聲明變量的方式:

方式一:使用 var 關鍵字
var name string
var age int

這表示聲明了一個名為 name 的字符串變量和一個名為 age 的整型變量。

你也可以在同一行聲明多個變量:

var x, y int
var a, b, c string
方式二:聲明并初始化
var name string = "Alice"
var age int = 25

Go具有類型推導能力,因此你可以省略類型:

var name = "Bob"
var age = 30  // Go會自動推斷為int類型
方式三:短變量聲明(最常用)

在函數內部,可以使用 := 快速聲明并初始化變量:

name := "Charlie"
age := 28

這是Go中最常見的變量聲明方式,簡潔高效。

?? 注意::= 只能在函數內部使用,且變量必須是新聲明的(不能重復聲明)。


二、常量(Constants)

常量是程序運行期間不可更改的值。適合用于定義配置、數學常數等。

常量聲明

使用 const 關鍵字:

const Pi = 3.14159
const CompanyName = "TechGo"

你也可以批量聲明:

const (StatusOK = 200StatusNotFound = 404StatusServerError = 500
)

💡 小技巧:常量在編譯時確定,不會占用運行時內存。


三、Go的基本數據類型

Go是靜態類型語言,每個變量都有明確的類型。以下是Go中常見的基礎數據類型:

1. 布爾類型(boolean)

var isActive bool = true
var isDone = false

取值只有 truefalse

2. 整數類型

類型描述
int有符號整數(32位或64位)
int8-128 到 127
int16-32768 到 32767
int32約 ±21億
int64更大范圍的整數
uint無符號整數
uint80 到 255(常用于字節)

一般情況下,使用 int 就足夠了。

3. 浮點數類型

var price float64 = 19.99
var rate = 3.14  // 默認是float64
  • float32:單精度浮點數
  • float64:雙精度浮點數(推薦使用)

4. 字符串類型(string)

字符串用雙引號包裹:

var message string = "Hello, Go!"
name := "Lily"

Go中的字符串是不可變的,支持UTF-8編碼。

5. 字符類型(rune)

Go中沒有 char 類型,而是使用 rune 表示一個Unicode字符:

var ch rune = 'A'
var emoji = '😊'  // 支持emoji

底層是 int32 類型。

6. 字節類型(byte)

byteuint8 的別名,常用于處理原始字節數據:

var b byte = 'B'  // ASCII值66

四、查看變量類型

Go提供了 fmt.Printf%T 動詞來打印變量類型:

package mainimport "fmt"func main() {name := "GoLang"age := 15price := 9.99isActive := truefmt.Printf("name 的類型是: %T\n", name)fmt.Printf("age 的類型是: %T\n", age)fmt.Printf("price 的類型是: %T\n", price)fmt.Printf("isActive 的類型是: %T\n", isActive)
}

輸出:

name 的類型是: string
age 的類型是: int
price 的類型是: float64
isActive 的類型是: bool

五、最佳實踐建議

  1. 優先使用 := 在函數內部快速聲明變量。
  2. 明確類型 在導出變量或需要精確控制時顯式聲明類型。
  3. 常量命名 使用駝峰或全大寫,如 MaxUsersAPI_TIMEOUT
  4. 避免使用 var 初始化多個不同類型的變量,影響可讀性。

小結

在本篇文章中,我們學習了:

  • 如何聲明和使用變量與常量
  • Go的常用基礎數據類型
  • 不同變量聲明方式的適用場景
  • 如何查看變量類型

這些是Go語言編程的基石。掌握它們,你就能開始編寫更復雜的程序了。


下期預告

在下一篇文章中,我們將介紹 Go中的控制結構ifforswitch 等語句,帶你寫出更有邏輯的代碼!


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

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

相關文章

《戰神:諸神黃昏》v1.0.668中文版,索尼大作,PC平臺體驗諸神黃昏

[游戲名稱]: 《戰神:諸神黃昏》v1.0.668中文版 [軟件大小]: 175 GB [軟件大小]: 夸克網盤 游戲介紹 《戰神:諸神黃昏》是由索尼制作并發行的動作冒險游戲,作為《戰神4》的正統續作,它繼續了奎托斯與阿特柔斯的神話之旅。在諸神…

AI賦能環保精準治理:AI水質監測溯源快、空氣質量預測施策準,守護生態新效能

傳統環境保護工作長期受限于 “污染監測滯后”“溯源難度大”“治理方案針對性弱” 的問題,而 AI 技術的深度應用,正讓環保工作從 “被動應對” 轉向 “主動預判”,既能實時捕捉污染蹤跡,還能精準制定治理方案,讓生態保…

yolo訓練實例(一)

yolo官網 https://github.com/ultralytics/ultralytics?tabreadme-ov-file 下載python和解除限制 https://www.python.org/downloads/windows/ Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled"…

STM32-BKP備份寄存器與RTC實時時鐘

引言本文主要從BKP備份寄存器和RTC實時時鐘的原理,特性及應用三個方面展開討論,解析它們在STM32中的獨特價值,助力開發者更好的掌握和運用它們。BKP備份寄存器的定義STM32的BKP備份寄存器是一種特殊的存儲單元,它位于備份區域&…

Linux網絡服務(五)——FTP服務詳解與實踐操作手冊

文章目錄前言一、FTP服務概述1.1 FTP基本定義1.2 VSFTP模式分類1.3 FTP端口作用二、FTP作用與工作原理(重點)2.1 FTP的作用、模式及通信方式2.1.1 FTP核心作用2.1.2 VSFTP模式與通信協議2.2 FTP工作原理與流程2.2.1 主動模式工作原理2.2.2 被動模式工作原…

5.3 包管理工具 npm yarn pnpm 對比

基本介紹 工具發布時間開發者定位npm2010 年npm Inc / OpenJS FoundationNode.js 官方包管理器Yarn2016 年Facebook(現 Meta)更快、更可靠的替代方案pnpm2016 年Zoltan Kochan高性能、節省磁盤空間 一、核心機制與設計差異 1. npm(Node Pa…

爬蟲基礎學習-授權認證,cookie認證,異常處理

驗證: HTTPBasicAuthHandler(用戶基本的身份驗證處理) HTTPPasswordMgrWithDefaultRealm(經常和authhandler一起出現)#創建一個密碼管理器 password_mgr urllib.request.HTTPPasswordMgrWithDefaultRealm() #添加進目…

開發避坑指南(34):mysql深度分頁查詢優化方案

問題語句 SELECT* FROMt_order_log l WHERE1 1 AND l.create_time > 2024-08-28 AND l.create_time < 2024-09-04 23:59:59 LIMIT 10000,10上述查詢sql&#xff0c;即使create_time字段已建立索引&#xff0c;但偏移量達到幾十萬時候&#xff0c;查詢耗時將近1分鐘&…

Unreal Engine UFloatingPawnMovement

Unreal? Unreal Engine - UFloatingPawnMovement&#x1f3f7; 定義&#x1f9e9; 類繼承關系?? 關鍵特性&#x1f6e0;? 常見配置&#xff08;Details 面板/代碼&#xff09;&#x1f4dd; 使用方法1) 在 Pawn 中添加組件&#xff08;C&#xff09;2) 綁定輸入與驅動移動3…

某網盤不好用?有沒有類似某網盤的存儲軟件?阿里云國際站 OSS:云存儲的全能助手,你 get 了嗎?

在這個數據爆炸的時代&#xff0c;數據存儲和管理成為了眾多企業和個人面臨的一大挑戰。想象一下&#xff0c;你是一位視頻博主&#xff0c;隨著粉絲量的增長&#xff0c;視頻素材越來越多&#xff0c;電腦硬盤根本裝不下&#xff0c;每次找素材都要花費大量時間。又或者你是一…

安全運維過程文檔體系規范

安全運維過程文檔體系規范 1. 文檔體系總覽 本文檔體系嚴格遵循“安全運維生命周期”模型設計&#xff0c;涵蓋業務建立、協同、運維管理、識別防御監測、響應和效果評估六個核心階段。體系旨在通過標準化、規范化的文檔管理&#xff0c;確保所有安全運維活動有章可循、有據可查…

【計算機網絡】 IPV4和IPV6區別

IPv4 和 IPv6 是兩代 互聯網協議&#xff08;Internet Protocol&#xff09;&#xff0c;它們的核心作用都是&#xff1a; &#x1f449; 為網絡設備分配唯一地址&#xff0c;讓它們能在網絡中互相通信。1?? 地址長度IPv4&#xff1a;32 位&#xff08;4 字節&#xff09;&am…

哈希:最長連續序列

題目描述&#xff1a;無序的整型數組&#xff0c;求連續最長序列。 輸入&#xff1a;nums [100,4,200,1,3,2] 輸出&#xff1a;4 &#xff08;因為&#xff1a;最長數字連續序列是 [1, 2, 3, 4]&#xff0c;長度為 4。&#xff09; 說明&#xff1a;連續指的是數字的連續…

python中的生成器

概要python中的生成器是一種特殊的迭代器&#xff0c;如果按照c語言的說法&#xff0c;就是一種特殊的指針&#xff0c;但是python語言的一個語言特性是兼容了函數化編程&#xff0c;類似lambda匿名函數機制。本文重點介紹生成器表達式的使用&#xff0c;是一種很快捷&#xff…

【Coze】Windows 環境下使用 Docker 部署 Coze Studio 的詳細指南

一、前言&#xff1a; Coze Studio 是一站式 AI Agent 開發工具。提供各類最新大模型和工具、多種開發模式和框架&#xff0c;從開發到部署&#xff0c;為你提供最便捷的 AI Agent 開發環境。 提供 AI Agent 開發所需的全部核心技術&#xff1a;Prompt、RAG、Plugin、Workflo…

票務系統小程序源碼

1. 系統概述 github地址 本系統是一個歷經多年迭代和市場檢驗的綜合性智慧票務解決方案。它以小程序和后臺管理系統為核心&#xff0c;深度整合了線上OTA渠道、線下多種支付方式以及各類智能硬件&#xff0c;為旅游景區、展館、活動中心等場景提供穩定、高效、功能完備的一體化…

Python 文件操作與異常處理全解析

目錄 一、文件的基本概念 1. 什么是文件 2. 文件操作的核心內容 3. 文件操作的作用 二、文件的基本操作 1. 文件操作三步走 2. 打開文件&#xff1a;open () 函數 2.1 文件路徑 2.2 常用 mode 模式 3. 寫入文件&#xff1a;write () 函數 4. 關閉文件&#xff1a;cl…

領碼方案:通用物聯網數據采集低代碼集成平臺——萬物智聯時代的黃金鑰匙

摘要&#xff1a; 領碼方案通過“協議抽象層低代碼引擎AI智能中樞”架構&#xff0c;實現物聯網設備數據采集、存儲、分析的零代碼配置化集成。支持200工業協議即插即用&#xff0c;10分鐘完成設備上云&#xff0c;數據流轉效率提升70%&#xff0c;AI模型調用耗時降低90%。該方…

后臺管理系統-10-vue3之用戶管理組件配置子路由和靜態頁面

文章目錄 1 配置子路由 1.1 router/index.js(添加路由) 1.2 views/User.vue(用戶管理) 1.3 驗證路由是否生效 2 User.vue(靜態頁面) 2.1 搜索框和表格的靜態搭建 2.2 用戶表格的數據獲取渲染 2.2.1 user.js(準備數據) 2.2.2 mock.js(攔截請求的URL) 2.2.3 api.js(axios請求的UR…

AMPAK正基科技系列產品有哪些廣泛應用于IOT物聯網

關於正基AMPAK 智慧物聯網 無線射頻模組專家 專業品牌 正基科技是一家擁有超過 20 年無線模組研發、設計、生產、行銷與產品技術整合服務經驗的公司。 有專業的高頻模組硬體設計及軟體整合工程師團隊&#xff0c;具備豐富的客戶應用經驗&#xff0c;能因應客戶與市場導向的產品…