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

Go語言基礎(chǔ)語法和基本數(shù)據(jù)類型知識鞏固

 更新時間:2023年11月06日 10:16:37   作者:陳明勇  
這篇文章主要為大家介紹了Go語言基礎(chǔ)語法和基本數(shù)據(jù)類型知識鞏固,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

快速上手一門新的語言,首先要做的就是熟悉新語言的基本語法和基本數(shù)據(jù)類型,本文將對 Go 語言的基礎(chǔ)語法和基本數(shù)據(jù)類型進行介紹。

Hello,World!

記得當初學習 C 語言的時候,第一個演示程序是輸出 Hello World!,Go 官網(wǎng)的第一個案例也是輸出 Hello,World!

package main // 包聲明
import "fmt" // 包導入
// func 函數(shù)關(guān)鍵字
func main() {
    fmt.Println("Hello,World!")
}

從 Hello,World! 輸出案例可知:

  • 聲明包的關(guān)鍵字是 package ;
  • 導包的關(guān)鍵字是 import;
  • 使用包里面的函數(shù)以 包名.函數(shù) 這種格式進行;
  • 函數(shù)的聲明關(guān)鍵字是 func。

有關(guān) main 函數(shù)的一些要點

1、`main` 函數(shù)必須在 `main` 包里。

2、當 `main` 函數(shù)所在的文件被命名為 `main.go` 時,可以直接使用 `go run ./main.go` 命令直接運行程序。

3、當 `main` 函數(shù)所在的文件名字不為 `main.go`,需要分以下兩種情況,假設(shè)所在文件的名字為 `a.go`。

當 a.go 文件里沒有引用其他文件的變量等元素時,可以直接使用 go run ./a.go 運行。

package main // 包聲明
import "fmt" // 包導入
// func 函數(shù)關(guān)鍵字
func main() {
    fmt.Println("Hello,World!")
}

運行文件

D:\go_projects\src\go_basic> go run .\main.go
Hello,World!

當 a.go 文件里有引用其他文件的變量等元素時,需要先使用 go build ./a.go ./b.go 生成可執(zhí)行文件,再運行 exe 可執(zhí)行文件。

package main // a.go 文件
import "fmt"
func main() {
    fmt.Println(name)
}
package main // b.go 文件
var name string = "cmy"

直接運行文件會報錯

D:\go_projects\src\go_basic> go run .\a.go
# command-line-arguments
.\a.go:6:14: undefined: name

正確的運行方式

D:\go_projects\src\go_basic> go build .\a.go .\b.go
D:\go_projects\src\go_basic> ls

    目錄: D:\go_projects\src\go_basic
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2022-11-23      1:39                .idea
-a----        2022-11-23      2:03        1950720 a.exe
-a----        2022-11-23      1:50             63 a.go
-a----        2022-11-23      1:52             38 b.go
-a----        2022-11-23      1:57            127 main.go

D:\go_projects\src\go_basic> .\a.exe
cmy

關(guān)鍵字

除了上面提到的幾個關(guān)鍵字以外,Go 語言還有其他關(guān)鍵字,一共 25 個關(guān)鍵字。

package

聲明

語法格式: package xxx

package main

包名字由英文或英文與下劃線組合組成。

注意點:

包聲明時名字可以和文件夾的命名不一樣。

同一個文件夾內(nèi),每個 Go 文件的包聲明必須一致,否則會報錯。

package hello // a.go 文件
package hello // b.go 文件

引入

包的引入方式:import [alias] xxx,alice 是一個可選值,為包起別名。

import "fmt"
import f "fmt" // 起別名

注意點:

引入包而沒有使用,會報錯。

匿名引入:

import _ "fmt" // 起別名

一般匿名引入,是為了使用包里面的 init 函數(shù),它先于 main 函數(shù)之前執(zhí)行-

func init() {
}

基本數(shù)據(jù)類型

Go 語言中的數(shù)據(jù)類型有很多,除了本文介紹的基本數(shù)據(jù)類型以外,還有指針、數(shù)組、結(jié)構(gòu)體 struct、管道 channel、函數(shù) func 、切片 

整形數(shù)據(jù)類型

有符號整數(shù)類型

類型占用存儲空間表數(shù)范圍
int81字節(jié)-2^7 ~ 2^7-1 (-128-127)
int162字節(jié)-2^15 ~ 2^15-1 (-32768-32767)
int324字節(jié)-2^31 ~ 2^31-1 (-2147483648-2147483647)
int648字節(jié)-2^63 ~ 2^63-1

無符號整數(shù)類型

類型占用存儲空間表數(shù)范圍
uint81字節(jié)0~255
uint162字節(jié)0~2^16-1
uint324字節(jié)0~2^31-1
uint648字節(jié)0~2^63-1

其他整數(shù)類型

類型有無符號占用存儲空間表數(shù)范圍
int32位系統(tǒng)-4字節(jié), 64位系統(tǒng)-8字節(jié)-2^31 ~ 2^31-1, -2^63 ~ 2^63-1
uint32位系統(tǒng)-4字節(jié), 4位系統(tǒng)-8字節(jié)0 ~ 2^31-1, 0~2^64-1
rune等價 int32-2^31 ~ 2^31-1
byte等價 unint80~255

浮點數(shù)據(jù)類型

類型占用存儲空間表數(shù)范圍
float324字節(jié)-3.403E38~3.403E38
float648字節(jié)-1.798E308~1.798E308

字符類型

  • Go 沒有字符類型,如果要存單個字符(字母),可使用 byte 類型代替。
  • Go 中字符使用 UTF-8 編碼。

布爾類型

  • 布爾類型在 Go 中對應 bool 類型,它只允許取值為 true 和 false。
  • 布爾類型占 1 個字節(jié)。
  • 布爾類型適用于邏輯運算,一般用于程序流程控制。

字符串類型

  • 字符串不可變(指的是其中字符的值不能變,例如 var name string = "cmy",然后操作 name[0]='a' 是不行的)。
  • 如果字符串中需要換行或者字符串較復雜,可以使用反引號 ``。

基本數(shù)據(jù)類型的默認值

數(shù)據(jù)類型默認值
整數(shù)類型0
浮點類型0
布爾類型false
字符串類型""

常量和變量聲明

常量聲明:const xxx type = value

const realName string = "chenmingyong"
const Age int = 18

變量聲明:var xxx type = value

var realName string = "chenmingyong"
var Age int = 18

在定義局部變量(方法或函數(shù)內(nèi)部的變量)時,還可以使用 := 去聲明,切記是局部變量,全局變量不能使用 :=,否則會報錯。

realName := "chenmingyong"
Age := 18

Go 會使用類型推斷來判斷類型,數(shù)字會被理解為 int 或者 float64,字符串會被理解為 string

注意點:

  • Go 推薦使用駝峰命名的方式。
  • 常量被聲明后,后續(xù)的值不能被修改。
  • 常量和變量的名字,首字母是否大寫,決定著它是否能夠被包外文件訪問,大寫則可以被包外的 Go 文件訪問,小寫則認為是私有的,只能被包內(nèi)的 Go 文件訪問。
  • 變量聲明之后,沒有使用,編譯時會報錯。
  • 類型不匹配不能被賦值。
  • 同一個作用域下,變量只能聲明一次。

以上就是Go語言基礎(chǔ)語法和基本數(shù)據(jù)類型知識鞏固的詳細內(nèi)容,更多關(guān)于Go語言語法基本數(shù)據(jù)類型的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Golang中的深拷貝與淺拷貝使用

    Golang中的深拷貝與淺拷貝使用

    本文主要介紹了Golang中的深拷貝與淺拷貝使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • golang并發(fā)執(zhí)行的幾種方式小結(jié)

    golang并發(fā)執(zhí)行的幾種方式小結(jié)

    本文主要介紹了golang并發(fā)執(zhí)行的幾種方式小結(jié),主要包括了Channel,WaitGroup ,Context,使用這三種機制中的一種或者多種可以達到并發(fā)控制很好的效果,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Go語言中排序的3種實現(xiàn)方法

    Go語言中排序的3種實現(xiàn)方法

    在寫代碼過程中,排序是經(jīng)常會遇到的需求,這篇文章主要為大家介紹三種常用的方法,文中的示例代碼簡潔易懂,需要的小伙伴可以參考下
    2023-08-08
  • Golang 定時器(Timer 和 Ticker),這篇文章就夠了

    Golang 定時器(Timer 和 Ticker),這篇文章就夠了

    這篇文章主要介紹了Golang 定時器(Timer 和 Ticker),這篇文章就夠了,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • golang中使用匿名結(jié)構(gòu)體的方法

    golang中使用匿名結(jié)構(gòu)體的方法

    這篇文章主要介紹了golang中使用匿名結(jié)構(gòu)體,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Go如何優(yōu)雅的使用字節(jié)池示例詳解

    Go如何優(yōu)雅的使用字節(jié)池示例詳解

    在編程開發(fā)中,我們經(jīng)常會需要頻繁創(chuàng)建和銷毀同類對象的情形,這樣的操作很可能會對性能造成影響,這時常用的優(yōu)化手段就是使用對象池(object pool),這篇文章主要給大家介紹了關(guān)于Go如何優(yōu)雅的使用字節(jié)池的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • go中的protobuf和grpc使用教程

    go中的protobuf和grpc使用教程

    gRPC 是 Google 公司基于 Protobuf 開發(fā)的跨語言的開源 RPC 框架,這篇文章主要介紹了go中的protobuf和grpc使用教程,需要的朋友可以參考下
    2024-08-08
  • 詳解go程序如何在windows服務中開啟和關(guān)閉

    詳解go程序如何在windows服務中開啟和關(guān)閉

    這篇文章主要介紹了一個go程序,如何在windows服務中優(yōu)雅開啟和關(guān)閉,文中通過代碼示例和圖文講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • GO語言標準錯誤處理機制error用法實例

    GO語言標準錯誤處理機制error用法實例

    這篇文章主要介紹了GO語言標準錯誤處理機制error用法,實例分析了錯誤處理機制的具體用法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • win10下go mod配置方式

    win10下go mod配置方式

    這篇文章主要介紹了win10下go mod配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論