欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入淺出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在編譯時,會自動推導類型 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)存地址對應的值,只是a表示內(nèi)存地址 }
總結(jié): a. 在函數(shù)體中,如果修改傳過來的值類型,外面的值不會變化.因為是復制了一份值進去.如果是修改引用類型,因為指針指向同一個變量,所以會影響外面的值.

(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語言reflect包的反射機制基本用法示例

    Go語言reflect包的反射機制基本用法示例

    反射在處理接口和類型斷言、開發(fā)通用功能或者設(shè)計框架時尤為重要,本文將深入探索 Go 語言中的反射機制,通過具體的示例展示如何使用?reflect?包,讓你能夠在 Go 項目中有效地利用這一強大的工具
    2023-11-11
  • go語言同步教程之條件變量

    go語言同步教程之條件變量

    這篇文章主要給大家介紹了關(guān)于go語言同步教程之條件變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • Go語言實現(xiàn)類似c++中的多態(tài)功能實例

    Go語言實現(xiàn)類似c++中的多態(tài)功能實例

    Go本身不具有多態(tài)的特性,不能夠像Java、C++那樣編寫多態(tài)類、多態(tài)方法。但是,使用Go可以編寫具有多態(tài)功能的類綁定的方法。下面來一起看看吧
    2016-09-09
  • Go語言利用ffmpeg轉(zhuǎn)hls實現(xiàn)簡單視頻直播

    Go語言利用ffmpeg轉(zhuǎn)hls實現(xiàn)簡單視頻直播

    這篇文章主要為大家介紹了Go語言利用ffmpeg轉(zhuǎn)hls實現(xiàn)簡單視頻直播,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • go語言net包rpc遠程調(diào)用的使用示例

    go語言net包rpc遠程調(diào)用的使用示例

    本篇文章主要介紹了go語言net包rpc遠程調(diào)用的使用示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Go使用TimerController解決timer過多的問題

    Go使用TimerController解決timer過多的問題

    多路復用,實際上Go底層也是一種多路復用的思想去實現(xiàn)的timer,但是它是底層的timer,我們需要解決的問題就過多的timer問題!本文給大家介紹了Go使用TimerController解決timer過多的問題,需要的朋友可以參考下
    2024-12-12
  • Go語言LeetCode500鍵盤行題解示例詳解

    Go語言LeetCode500鍵盤行題解示例詳解

    這篇文章主要為大家介紹了Go語言LeetCode500鍵盤行題解示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • go語言csrf庫使用實現(xiàn)原理示例解析

    go語言csrf庫使用實現(xiàn)原理示例解析

    這篇文章主要為大家介紹了go語言csrf庫使用實現(xiàn)原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • go語言方法集為類型添加方法示例解析

    go語言方法集為類型添加方法示例解析

    這篇文章主要為大家介紹了go語言方法集以及為類型添加方法示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • golang實現(xiàn)對JavaScript代碼混淆

    golang實現(xiàn)對JavaScript代碼混淆

    在Go語言中,你可以使用一些工具來混淆JavaScript代碼,一個常用的工具是Terser,它可以用于壓縮和混淆JavaScript代碼,你可以通過Go語言的`os/exec`包來調(diào)用Terser工具,本文給通過一個簡單的示例給大家介紹一下,感興趣的朋友可以參考下
    2024-01-01

最新評論