Go語言編程教程-基本數據類型

来源:https://www.cnblogs.com/mstmdev/archive/2023/12/27/17925180.html
-Advertisement-
Play Games

課程要點 瞭解布爾類型 瞭解整數類型 瞭解浮點數類型 瞭解複數類型 瞭解字元串類型 瞭解字元類型 布爾類型 類型 名稱 取值範圍 說明 bool 布爾類型 true或false 預設值為false 示例 ok := true println(ok) 整數類型 類型 名稱 取值範圍 說明 uint8 ...


課程要點

  1. 瞭解布爾類型
  2. 瞭解整數類型
  3. 瞭解浮點數類型
  4. 瞭解複數類型
  5. 瞭解字元串類型
  6. 瞭解字元類型

布爾類型

類型 名稱 取值範圍 說明
bool 布爾類型 truefalse 預設值為false

示例

ok := true
println(ok)

整數類型

類型 名稱 取值範圍 說明
uint8 8位無符號整型 0~255
uint16 16位無符號整型 0~65535
uint32 32位無符號整型 0~4294967295
uint64 64位無符號整型 0~18446744073709551615
int8 8位有符號整型 -128~127
int16 16位有符號整型 -32768~32767
int32 32位有符號整型 -2147483648~2147483647
int64 32位有符號整型 -9223372036854775808~9223372036854775807
int 有符號整型 32位系統同int32,64位系統同int64 類型大小隨操作系統的位數而定,是整數字面量的預設類型
uint 無符號整型 32位系統同uint32,64位系統同uint64 類型大小隨操作系統的位數而定
uintptr 指針類型 32位系統同uint32,64位系統同uint64 用於描述指針的地址,類型大小同uint類似
byte 位元組類型 uint8 int8的別名,用於描述位元組
rune 字元類型 int32 int32的別名,用於描述單個字元

上述整數類型預設值都為0,其中uintptrbyterune是特殊用途的整數類型,
在整數類型的基礎上賦予了額外的語義,使其具有更加強大的功能,後續會進行更加深入的解析和應用。

示例

var uint8N uint8 = 255
println(uint8N)

var uint16N uint16 = 65535
println(uint16N)

var uint32N uint32 = 4294967295
println(uint32N)

var uint64N uint64 = 18446744073709551615
println(uint64N)

var int8N int8 = 127
println(int8N)

var int16N int16 = 32767
println(int16N)

var int32N int32 = 2147483647
println(int32N)

var int64N int64 = 9223372036854775807
println(int64N)

var intN int = 1
println(intN)

var uintN uint = 1
println(uintN)

var uintptrN uintptr = 1
println(uintptrN)

var byteN byte = 255
println(byteN)

var runeN rune = '中'
println(runeN)

浮點數類型

類型 名稱 取值範圍 說明
float32 32位浮點數類型 -math.MaxFloat32~math.MaxFloat32 預設值為0
float64 64位浮點數類型 -math.MaxFloat64~math.MaxFloat64 預設值為0,是小數字面量的預設類型

浮點數類型用於描述小數,採用IEEE-754浮點數標準

示例

var f32 float32 = 1.1
println(f32)

var f64 float64 = 1.1
println(f64)

複數類型

類型 名稱 取值範圍 說明
complex64 64位複數類型 實部與虛部取值同float32 由兩個float32類型組成的複數
complex128 128位複數類型 實部與虛部取值同float64 由兩個float64類型組成的複數

複數包含實部和虛部,由兩個浮點數組成,我們可以使用內置的complex函數來創建複數類型,
並且使用realimag函數分別獲取複數的實部和虛部。

示例

// 創建complex64類型的複數
c64 := complex(float32(1.1), float32(1.2))
// 獲取實部
real64 := real(c64)
// 獲取虛部
imag64 := imag(c64)
println(c64)
println(real64)
println(imag64)

// 創建complex128類型的複數
c128 := complex(1.1, 1.2)
// 獲取實部
real128 := real(c128)
// 獲取虛部
imag128 := imag(c128)
println(c128)
println(real128)
println(imag128)

字元串類型

類型 名稱 取值範圍 說明
string 字元串類型 通常取值為UTF-8支持的Unicode字元集 string本質上是一個byte集合,所以也可以表示UTF-8編碼之外的字元集

string類型的預設值為空字元串,同大多數編程語言一樣,Golang中的字元串類型的值也是不可變的。

string類型在底層實際是用byte數組來存儲的,所以我們可以直接將其與byte切片進行相互轉換,
後續會有單獨的章節對字元串類型進行詳細介紹,這裡只做簡單的介紹和瞭解。

在Golang中並沒有名為char的字元類型,但是我們可以使用上文提到過的rune類型來描述一個合法字元,
也可以直接將字元轉換為字元串,如下所示

示例

s := "hello world"
println(s)
// 將字元串轉為byte切片
bytes := []byte(s)
println(bytes)
// 將byte切片轉為字元串
s2 := string(bytes)
println(s2)
// 定義一個字元
var char rune = '文'
// 將字元轉為字元串
s = string(char)
println(s)

小結

通過上述的簡單介紹,我們對Golang的基本數據類型有了一個初步的瞭解,和其他主流的編程語言非常相似,
如果你有一定的編程基礎,相信你很快就能掌握它。

如果你沒有相關的經驗也沒有關係,後續的教程中,我們會不斷的用到這些基礎類型,
並且對一些常用的基本數據類型進行更進一步的深入探索。

當然了,這些還不是Golang數據類型中的全部,Golang中還有更加複雜的複合類型,
它們具有更加強大的功能以及更加靈活的使用方式,正是因為有了它們作為Golang的基石,
才使得Golang具有如此強大的生命力。

讓我們來繼續逐步深入學習吧!

作者: 陌上荼靡
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有時候在調用需要用非同步調用API介面。在python中有很多框架,比如 asyncio, Celery,Quart 等。這裡我選擇了 asyncio。Python 3.5以上版本內置了asyncio庫,可以用來編寫單線程的併發代碼。可以使用此庫與aiohttp結合來發送非同步HTTP請求。 Pytho ...
  • 第十七章著重講解了異常處理的方法。傳統單體架構下,全局異常處理類通過實現HandlerExceptionResolver介面實現異常的統一處理,可以根據不同異常返回不同的錯誤頁面。但在前後端分離的開發中,使用@ControllerAdvice和@ExceptionHandler註解更為方便。@Con... ...
  • 最近都沒啥時間,很久沒更新了。 今天分享一下,如何用selenium識別驗證碼,實現自動登錄以及獲取數據。 目標:某東 話不多說直接開始 準備工作 環境 Python 3.10 Pycharm 模塊使用 import random import time from selenium import w ...
  • Qt 是一個跨平臺C++圖形界面開發庫,利用Qt可以快速開發跨平臺窗體應用程式,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實現圖形化開發極大的方便了開發效率,本章將重點介紹`TableView`與`TreeView`組件聯動的常用方法及靈活運用。本章我們繼續實現表格的聯動效果,當讀者點... ...
  • 來源:https://juejin.cn/post/7169567387527282701 先總結: 數據量小的時候,用join更划算 數據量大的時候,join的成本更高,但相對來說join的速度會更快 數據量過大的時候,in的數據量過多,會有無法執行SQL的問題,待解決 事情是這樣的,去年入職的新 ...
  • 官方介面圖 我實際會用到的就幾個介面,背面的話就一個M.2固態的位置: 其中WIFI模塊的介面應該也可以插2230的固態,不過是pcie2.0的速度,背面的介面則是pcie3.0*4的速度,差距還是挺大的。 開始安裝系統 準備工作 一張記憶體卡(如果買的時候沒有emmc的話) 下載並安裝balenaE ...
  • 目錄下載rustup-init.exe(Rust安裝工具)使用鏡像加速rustup安裝安裝Rust安裝標準庫源碼使用鏡像加速cargo包下載安裝結果確認更新、卸載和文檔查看參考文檔 下載rustup-init.exe(Rust安裝工具) 下載安裝程式 https://www.rust-lang.or ...
  • 隨著人們對個人命運的關註度不斷提高,很多人開始尋找各種方法來預測未來,把握機遇。而其中一種被廣泛使用的方法就是八字預測。通過分析個人的生辰八字,可以揭示出一個人未來的發展趨勢和潛在的機遇。如今,挖數據平臺提供了一個八字命運API介面,可以幫助用戶進行八字預測,免費算命,讓人們更好地瞭解自己的未來。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...