Go語言學習(三) 基礎知識梳理

2021-10-01 16:14:48 字數 3142 閱讀 8074

今天我們繼續梳理go語言基礎知識。

一、注釋

1、「//」 單行注釋

「//」 為**單行注釋。

2、「/* */」 多行注釋,也稱為塊注釋。

通過編寫注釋,可以來提高自己,或者他人對你寫的**閱讀性

更容易讀懂,當時在寫**的時候,為什麼要這麼寫。

因為**寫完,過一段時間,就會忘記當時的想法和思路,注釋很重要

二、變數

什麼是變數,在程式執行過程中,能夠改變的量,變數簡單理解就是計算機用來儲存資料的,計算機通過變數來儲存資料實際上將資料儲存到計算機記憶體這種

記憶體是乙個連線的資料集合,每乙個記憶體儲存區域都會有唯一的位址標識。

記憶體位址編號是乙個無符號十六進製制整型資料表示的。

package main

import "fmt"

func main()

我們現在理解了變數可以用來儲存資料,但是我們要儲存的資料型別是各種各樣的,例如:整數,小數,文字等等。所以我們必須在定義變數時就要告訴計算機,定義的變數儲存是什麼型別的資料。那麼在記憶體中就可以根據不同的型別來開闢不同的儲存空間。關於資料型別,一會整理。

三、自動推導型別

我們看上面的**,發現,在給變數賦值的時候,非常麻煩,有沒有簡單的方式給變數賦值?

我們這裡可以使用自動推導型別,

a := 30
自動推導型別,不用通過var 來宣告變數,不用指定型別。直接在變數名後面跟「:」冒號。同時完成賦值操作,那麼go語言會根據所賦值自動推導出你要的變數。

通過對比,我們可與清楚的看到,這種方式,比我們之前用var進行變數定義更為簡單便捷。

四、多重賦值,匿名變數

1、上面我們講了,變數的定義,自動推導方式,如果想一次性使用自動推導型別給多個變數賦值,應該怎麼實現?

package main

import "fmt"

func main()

輸出結果

1 2 3

4 5 6

2、匿名變數:用 「_」表示匿名變數

作用,丟棄資料,不進行處理。

_, e, f := 4, 5, 6

fmt.println(e, f)

結果:

5 6
五、接收輸入

前面我們都是直接給變數賦值。但是很多情況下,我們希望使用者通過鍵盤來輸入某個變數值,如何使用go語言接收使用者的鍵盤輸入呢?

scanf()函式來接收使用者鍵盤輸入的值到控制台

package main

import "fmt"

func main()

結果,執行後,會暫停到控制台,要求你輸入年齡之後,在執行

請輸入你的年齡

50age=50

在go中我們用到了「fmt」這個包中的scanf()函式來接收使用者鍵盤輸入的資料。當程式執行到scanf()函式後,會停止往下執行,等待使用者的輸入,輸入完成後程式繼續往下執行。在這裡重點要注意的是scanf()函式的書寫格式,首先也要用「%d」,來表示輸入的是乙個整數,輸入完整數後儲存到變數age中,注意這裡age變數前面一定要加上「&」符號,表示獲取記憶體單元的位址(前面我們說的記憶體儲存區域的編號),然後才能夠儲存。

還有另外一種獲取使用者輸入資料的方式,如下:

package main

import "fmt"

func main()

執行結果:

請輸入你的年齡

30age=30

通過scan函式接收使用者輸入,這時可以省略掉%d,這種寫法更簡單。

六、變數命名的規範

在我們前面的程式設計中,我們定義變數時都是隨意進行命名,但是在go語言中,對變數的命名有一些規範性的要求,下面我們看一下具體的要求。

1、變數命名規範要求

名字必須以乙個字母(unicode字母)或下劃線開頭,後面可以跟任意數量的字母、數字或下劃線。大寫字母和小寫字母是不同的:heapsort和heapsort是兩個不同的名字。

除了上面提到的規範要求以外,go語言自己特有的,具有一定含義的一些字元,也不能作為變數名稱。例如,前面我們接觸到的func, fmt,print等等,這些都是go自帶的,具有特殊含義的字元,我們稱為關鍵字。

break       default        func         inte***ce        select

case        defer         go        map      struct

chan        else         goto     package   switch

const   fallthrough if     range        type

continue   for     import     return    var

以上關鍵字都不能作為變數的名稱。

除此以外,還有大約30多個預定義的名字,比如int  true等,

true false iota nil

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64 uintptr

float32 float64 complex128 complex64

bool byte rune string error

complex real imag

panic recover

2、見名知意,起名的時候要有含義,比如name,就代表名稱。

3、駝峰命名法

(1)小駝峰式命名法:第乙個單詞以小寫字母開始;第二個單詞的首字母大寫,例如:myname、adog

(2)大駝峰式命名法:每乙個單字的首字母都採用大寫字母,例如:firstname、lastname

不過在程式設計師中還有一種命名法比較流行,就是用下劃線「_」來連線所有的單詞,比如send_buf

這篇到這,下篇我們繼續。

Go語言學習筆記一 基礎知識

package main import errors fmt func main var xx byte 2 var yy uint8 2 if xx yy go中字串是不可變的,s 0 c 編譯報錯,字元穿不能修,但可進行切片操作 var s string hello fmt.println s ...

Go基礎知識梳理(二)

有引數有返回值 func sum a int,b int int 無返回值 func sum a int,b int 無引數無返回值 func sum 返回多個值 func sum a int,b int int,error 引數簡寫 型別相同 func sum a,b int intfunc ma...

C語言基礎知識梳理

準備開乙個部落格專欄,關於cocos2d x遊戲開發的。因為cocos2d x是c 編寫的,所以也打算使用c 來講。1 基本型別 1.1 數值型別 a 整型 短整型short,整型int,長整型long b 浮點型 單精度float,雙精度double 1.2 字元型別char 2 構造型別 2.1...