Go語言標識符

文章目錄

  • 標識符的組成規則
  • Go語言關鍵字
  • 預定義標識符
    • 標識符命名慣例
  • 特殊標識符
  • 標識符訪問權限控制

在Go語言中,標識符(Identifier)是用來命名變量、函數、類型、常量等程序實體的名稱。

標識符的組成規則

1、必須以字母或下劃線(_)開頭:

    字母包括Unicode字符集中的任何字母字符。可以使用中文等非ASCII字符作為標識符(但不推薦)。

2、后續字符可以是字母、數字或下劃線

例如:name, age, _count, x1都是合法的標識符。

3、區分大小寫

Name和name是不同的標識符。

4、不能是Go語言的關鍵字

Go有25個保留關鍵字,不能用作標識符。

Go語言關鍵字

以下是Go語言的保留關鍵字,不能用作標識符:

break        default      func         interface    select
case         defer        go           map          struct
chan         else         goto         package      switch
const        fallthrough  if           range        type
continue     for          import       return       var

預定義標識符

Go還有一些預定義的標識符,雖然它們不是關鍵字,但最好避免使用它們作為自己的標識符:

true false iota nilint int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string errormake len cap new append copy close delete
complex real imag
panic recover

如果定義一個變量名字為int,會顯的很怪異,并且也是很容易出錯的,可讀性也不強,但是在Go語言中是允許的,這是一件很雞賊的事情。其實我很不理解,Go語言有如此之多的強制性要求,為什么不把這個點修改了?是沒必要還是修改起來困難呢?
在這里插入圖片描述

標識符命名慣例

1、駝峰命名法(CamelCase)

公開的標識符(首字母大寫):GetName, ServerAddr非公開的標識符(首字母小寫):getName, serverAddr

2、簡短而有意義

Go傾向于使用短小但有描述性的名稱例如用i而不是index作為循環變量

3、避免使用下劃線

除非是特殊用途(如測試文件_test.go)

4、包名應簡短

通常使用小寫單數名詞,如http, time, json

特殊標識符

空白標識符(_): 用于忽略值

go
_, err := someFunction() // 忽略第一個返回值
在這里插入圖片描述

標識符訪問權限控制

大小寫決定標識符的可見性(導出規則):

1、首字母大寫:表示該標識符是可導出的(exported/public),可以被其他包訪問

go

type Person struct {  // 可被其他包使用Name string      // 可被其他包訪問age  int         // 不可被其他包訪問
}func SayHello() {    // 可被其他包調用fmt.Println("Hello")
}

首字母小寫:表示該標識符是包私有的(unexported/private),只能在當前包內使用

go
type internalStruct struct {  // 只能在當前包使用field string
}func helperFunc() {          // 只能在當前包調用fmt.Println("helper")
}

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

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

相關文章

CST軟件對OPERACST軟件聯合仿真汽車無線充電站對人體的影響

上海又收緊了新能源車的免費上牌政策。所以年前一些伙伴和我探討過買新能源汽車的問題,小伙伴們基本糾結的點是買插電還是純電?我個人是很抗拒新能源車的,也開過坐過。個人有幾個觀點: 溢價過高,不保值。實際并不環保…

吳恩達機器學習筆記:多變量梯度下降

1.多維特征 之前我們探討了單變量/特征的回歸模型,現在我們對房價模型增加更多的特征,例如房間數樓層等,構成一個含有多個變量的模型,模型中的特征為 ( x 1 , x 2 , x 3... x n ) &…

【Linux Nano Vim快捷鍵大全】

Nano 快捷鍵大全 常用高頻操作 功能描述快捷鍵組合替代按鍵/備注使用頻率顯示幫助CtrlGF1高保存文件CtrlOF3高退出編輯器CtrlXF2高剪切當前行CtrlKF9高粘貼內容CtrlUF10高搜索文本CtrlWF6高替換文本Ctrl\AltR高撤銷操作AltU無中重做操作AltE無中跳轉到行號Ctrl_AltG中插入文件…

uniapp vue 沉浸式窗體如何獲取并排除外部手機瀏覽器底部菜單欄工具欄高度

這個問題可以簡稱為:uniapp vue 獲取可視窗口高度 第一種方案,只改變css樣式 /* 不考慮瀏覽器UI的最小視口高度 */ .element {height: 100svh; /* small viewport height */ }/* 考慮瀏覽器UI變化的動態視口高度 */ .element {height: 100dvh; /* dyna…

React Native告別圖標體積大手動更換慢的噩夢:讓圖標更新像修改文字一樣簡單

寫在前面:凌晨三點的圖標戰爭 “所有圖標都要換成圓角風格,明天上線!”——產品經理這條消息彈出時,我的保溫杯差點從手中滑落。掃了一眼項目中的347個圖標文件,我知道今晚又是個不眠夜。但就在絕望之際,同事發來一個GIF:他只是在終端輸入了iconfont-rn --update,所有…

自然語言處理與BI融合實戰:ChatBI動態語義解析技術架構剖析

在數字經濟時代,數據已成為企業核心競爭力的關鍵要素。如何高效挖掘數據價值、實現智能化決策,成為企業數字化轉型的核心命題。傳統商業智能(BI)工具雖具備強大的數據處理能力,但其技術門檻高、交互方式復雜等局限性日…

鴻蒙OSUniApp開發支持多語言的國際化組件#三方框架 #Uniapp

使用UniApp開發支持多語言的國際化組件 在全球化的今天,一個優秀的應用往往需要支持多種語言以滿足不同地區用戶的需求。本文將詳細講解如何在UniApp框架中實現一套完整的國際化解決方案,從而輕松實現多語言切換功能。 前言 去年接手了一個面向國際市場…

SpringBoot的外部化配置

一、什么是外部化配置 外部化配置是指把應用程序中各種可配置的參數、屬性等信息,從代碼內部提取出來,放置在外部的配置文件、數據庫或配置中心等地方(比如使用.properties、.yml 或.xml 等格式的文件)進行管理。提高應用程序的可…

SQL中聯表的運用

當出現要大量數據去查詢時,不要一個個去SQL查詢,應該要批量的去查詢。 def batch_cavity_query(self, fuseids): “”“批量查詢cavity信息”“” if not fuseids: return {} # 創建臨時表批量查詢 try:# 創建臨時表self.cursor.execute("CREATE …

React面試常問問題詳解

以下是30個React面試中常見的問題及簡要解析,涵蓋基礎概念、核心原理、性能優化、Hooks、狀態管理等方面,適用于初中高級開發者準備面試時參考: 一、React 基礎與核心概念 React 是什么? React 是由 Facebook 開發的用于構建用戶界…

【vite好用的配置】自動導入組件、vue中的hook、路徑解析、打包配置、本地運行反向代理配置

前言 之前出了一篇自己搭建 后臺管理系統的文章,今天順便把vite配置,涉及到的一些給大家分享吧。 按需食用哈。 文章目錄 前言一、 自動導入vue中的hook、ref等1. 安裝插件2. 配置 Vite(vite.config.ts 或 vite.config.js)1&…

思科(Cisco ASA/Firepower)、華三(H3C)、華為(Huawei USG)防火墻 的基礎配置

以下是針對 思科(Cisco ASA/Firepower)、華三(H3C)、華為(Huawei USG)防火墻 的基礎配置指南,涵蓋 區域劃分、安全策略、NAT、路由 等核心功能。配置示例基于通用場景,實際部署時需根…

mac latex vscode 配置

mac latex vscode 配置 安裝mactex.pkg 這里有個快速下載的鏡像 https://mirrors.aliyun.com/CTAN/systems/mac/mactex/ 可以檢查是否將 PATH 寫入 export PATH"/Library/TeX/texbin:$PATH"vscode 下載插件 Latex Workshop 在配置文件 settings.json 中輸入如下的…

AI日報 · 2025年5月14日|Android 生態大型更新與多端 Gemini 集成

1、Google “Android?Show:?I/O?Edition” 匯總:設計、安全、Gemini 三線并進 北京時間 5?月?14?日凌晨(原文標注 5?月?13?日 PDT),Google 在 I/O 前夕舉辦的 Android?Show 一口氣公布四大方向更新:① Mater…

MySQL入門指南:環境搭建與服務管理全流程

引言 各位開發者朋友們好!今天我們將開啟MySQL的學習之旅 🌟 作為世界上最流行的開源關系型數據庫,MySQL在Web應用、企業系統等領域占據著舉足輕重的地位。無論你是剛入行的新手,還是想系統復習的老鳥,這篇教程都將為…

LLM 論文精讀(四)LLM Post-Training: A Deep Dive into Reasoning Large Language Models

這是一篇2025年發表在arxiv中的LLM領域論文,是一篇非常全面的綜述類論文,介紹了當前主流的強化學習方法在LLM上的應用,文章內容比較長,但建議LLM方面的從業人員反復認真閱讀。 寫在最前面 為了方便你的閱讀,以下幾點的…

從規則驅動到深度學習:自然語言生成的進化之路

自然語言生成技術正經歷著人類文明史上最劇烈的認知革命。這項起源于圖靈測試的技術,已經從簡單的符號操作演變為具備語義理解能力的智能系統。當我們回溯其發展歷程,看到的不僅是算法模型的迭代更新,更是一部人類認知自我突破的史詩。這場革…

如何實現Flask應用程序的安全性

在 Flask 應用中,確保安全性非常關鍵,尤其是當你將應用部署到公網環境中時。Flask 本身雖然輕量,但通過組合安全策略、擴展庫和最佳實踐,可以構建一個非常安全的 Web 應用。 一、常見 Flask 安全風險(必須防護) 安全問題 簡要說明 CSRF(跨站請求偽造) 惡意網站誘導用戶…

Chrome安裝最新vue-devtool插件

本vue-devtool版本是官方的 v7.6.8版本,兼容性好、功能齊全且穩定。 操作步驟: 方法一: 打開谷歌瀏覽器 --> 右上角三個點 --> 擴展程序 --> 管理擴展程序 --> 加載已解壓的擴展程序, 然后選擇解壓后的文件夾即可。…

【redis】jedis客戶端的使用

Jedis是Redis官方推薦的Java客戶端庫,提供了對Redis數據庫的全面支持,適用于單機、哨兵及集群模式。作為最老牌的Java Redis客戶端,其API設計直觀,與Redis命令高度對應,例如set、get等方法與原生命令一致,降…