最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入淺出Go:掌握基礎(chǔ)知識的關(guān)鍵要點

 更新時間:2023年10月13日 08:39:25   作者:mb652682e942691  
Go是一種開源的編程語言,由Google開發(fā),它具有簡潔、高效、并發(fā)性強的特點,適用于構(gòu)建可靠的、高性能的軟件系統(tǒng),本文將介紹Go的基礎(chǔ)知識,需要的朋友可以參考下
  • 所有g(shù)o源碼以.go結(jié)尾.
  • golang可執(zhí)行程序,package main有且只有一個main入口函數(shù).
  • 兩種注釋:單行注釋//和多行注釋/* */

1. 變量命名:

標識符以字母或下劃線開頭,大小寫敏感 以數(shù)字開頭、含有特殊符號不行.
_是特殊標識符,用來忽略結(jié)果
保留關(guān)鍵字

2. import方式:

import("fmt")
import {
"fmt"
}

3. 常量:

常量使用const修飾,代表永遠是只讀的,不能修改.即在編譯的時候就已經(jīng)確定了.
const只能修飾boolean、number(int相關(guān)類型、浮點類型、complex)和string.
語法: const identifier [type] = value // 其中type可以省略
舉例: const b string = "hello world" const b = "hello world" // 不寫type在編譯時,會自動推導(dǎo)類型 const b = 9/3 // 在編譯時,會自動計算值 const c = getValue() // 錯誤的,因為函數(shù)只有在運行時,才會知道返回值
比較優(yōu)雅的寫法: const ( a = 0 b = 1 c = 2 )
更加專業(yè)的寫法: const ( a = iota // 這個會下面會自動+1 b // 值為1 c // 值為2 )

4. 變量:

語法: var identifier type
舉例: var a int var d int = 8 Var ( a int // 默認為0 b string // 默認為"" c bool // 默認為false d int = 8 e = "hello world" // 可以不寫type類型 )

4.1 值類型和引用類型:

值類型: a. 變量直接存儲值,內(nèi)存通常在棧中分配. b. 基本數(shù)據(jù)類型: int、float、bool、string以及數(shù)組和struct c. var i = 5 // i ---> 內(nèi)存中的值
引用類型: a. 變量存儲的是一個地址,這個地址存儲最終的值. b. 內(nèi)存通常在堆上分配,通過GC回收. c. 傳指針效率高,如果傳一個很大的結(jié)構(gòu)體,效率就不高了. d. 引用類型: 指針、slice(切片)、map、chan等都是引用類型. e. var i = 5 // ref i ---> 地址(指針) ---> 內(nèi)存中的值 f. &、*的運用: add(&a) func add(int *a) { return *a + 1 // *a表示取這個內(nèi)存地址對應(yīng)的值,只是a表示內(nèi)存地址 }
總結(jié): a. 在函數(shù)體中,如果修改傳過來的值類型,外面的值不會變化.因為是復(fù)制了一份值進去.如果是修改引用類型,因為指針指向同一個變量,所以會影響外面的值.

(1). 舉例:

func main() {
	fmt.Println(calc.Age)
	a := 10
	b := 20
	swap(&a, &b);
	fmt.Println(a);                  // 10
	fmt.Println(b);                  // 20
}
func swap(a *int, b *int) {         // 這里是交換拷貝值的內(nèi)存地址,不影響外面
	temp := a
	a = b
	b = temp
	fmt.Println("swap a:", *a);      // 20
	fmt.Println("swap b:", *b);      // 10
}

不管值類型是傳遞值還是內(nèi)存地址,都是重新拷貝一份.

4.2 變量的作用域:

局部變量:

  a. 在函數(shù)內(nèi)部聲明的變量.

  b. 生命周期僅限于函數(shù)內(nèi)部,出了這個函數(shù),變量就銷毀了.

全局變量:

  a. 在函數(shù)外部聲明的變量.

  b. 生命周期作用于整個包,如果是大寫的,則作用于整個程序.

  c. 在語義塊{}中,也有作用域.如for循環(huán)中聲明的變量,不能在for外面使用.

流程控制:

If / else分支判斷
- switch case語句
for 語句
for range 語句 用來遍歷數(shù)組、slice、map、chan

for i, v := range str {
fmt.Printf(“index[%d] val[%c] len[%d]\n”, i, v, len([]byte(v)))
}

默認值 string是一個空字符串 int是0

Go是一種簡潔高效的編程語言,具有強大的并發(fā)性能和豐富的標準庫。它適用于構(gòu)建可靠的、高性能的軟件系統(tǒng)。掌握Go的基礎(chǔ)知識,將有助于開發(fā)者更好地利用Go的特性來編寫高效的代碼。

到此這篇關(guān)于深入淺出Go:掌握基礎(chǔ)知識的關(guān)鍵要點的文章就介紹到這了,更多相關(guān)go 基礎(chǔ)知識內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go 判斷兩個 slice/struct/map 是否相等的實例

    go 判斷兩個 slice/struct/map 是否相等的實例

    這篇文章主要介紹了go 判斷兩個 slice/struct/map 是否相等的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • golang post請求常用的幾種方式小結(jié)

    golang post請求常用的幾種方式小結(jié)

    這篇文章主要介紹了golang post請求常用的幾種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • golang 調(diào)用c語言動態(tài)庫方式實現(xiàn)

    golang 調(diào)用c語言動態(tài)庫方式實現(xiàn)

    本文主要介紹了golang 調(diào)用c語言動態(tài)庫方式實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 使用Go語言實現(xiàn)LRU緩存的代碼詳解

    使用Go語言實現(xiàn)LRU緩存的代碼詳解

    在日常開發(fā)中,緩存是提高系統(tǒng)性能的重要手段,LRU緩存是一種基于“最近最少使用”策略的緩存系統(tǒng),其目的是在空間受限的情況下保留最新、最常用的數(shù)據(jù),本文將詳細講解如何使用?Go?語言實現(xiàn)一個?LRU?緩存,需要的朋友可以參考下
    2024-11-11
  • Golang爬蟲框架 colly的使用

    Golang爬蟲框架 colly的使用

    本文主要介紹了Golang爬蟲框架 colly的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Go語言學(xué)習(xí)筆記之反射用法詳解

    Go語言學(xué)習(xí)筆記之反射用法詳解

    這篇文章主要介紹了Go語言學(xué)習(xí)筆記之反射用法,詳細分析了Go語言中反射的概念、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-05-05
  • go打印%v %+v %#v的區(qū)別及說明

    go打印%v %+v %#v的區(qū)別及說明

    文章總結(jié)了Go語言中fmt包中%v、%+v和%#v格式化動詞的用法:%v只輸出值,%+v輸出字段名和值,%#v輸出結(jié)構(gòu)體名和字段信息
    2025-12-12
  • Golang中context庫的高級應(yīng)用

    Golang中context庫的高級應(yīng)用

    context庫不僅對于提升代碼的效率和性能至關(guān)重要,而且還幫助開發(fā)者在復(fù)雜的系統(tǒng)中保持代碼的清晰和可維護性,下面我們就來看看context庫的高級應(yīng)用吧
    2024-01-01
  • Go的ORM框架的使用

    Go的ORM框架的使用

    GORM是一個功能豐富的Go語言O(shè)RM框架,提供全功能的數(shù)據(jù)庫操作支持,本文就來介紹一下GORM框架的使用,感興趣的可以了解一下
    2026-01-01
  • Go Slice 實現(xiàn)原理從底層機制到工程實踐詳解

    Go Slice 實現(xiàn)原理從底層機制到工程實踐詳解

    本文將從企業(yè)級開發(fā)視角,深入剖析 Slice的底層實現(xiàn)原理,結(jié)合性能優(yōu)化實踐,幫助開發(fā)者寫出更高效、更安全的 Go 代碼,對go slice實現(xiàn)原理感興趣的朋友跟隨小編一起看看吧
    2025-11-11

最新評論

米泉市| 固阳县| 瓦房店市| 福州市| 阿克陶县| 南汇区| 临桂县| 三河市| 黄陵县| 益阳市| 抚远县| 宁陵县| 广饶县| 临漳县| 夏津县| 佛坪县| 论坛| 凤山县| 青龙| 宕昌县| 行唐县| 长海县| 安岳县| 无为县| 响水县| 临颍县| 南康市| 安国市| 洮南市| 林周县| 益阳市| 正安县| 台东市| 淮阳县| 巩义市| 炉霍县| 纳雍县| 七台河市| 金溪县| 新平| 辉南县|