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

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

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

前言

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

Hello,World!

記得當(dāng)初學(xué)習(xí) C 語(yǔ)言的時(shí)候,第一個(gè)演示程序是輸出 Hello World!,Go 官網(wǎng)的第一個(gè)案例也是輸出 Hello,World!。

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

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

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

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

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

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

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

當(dāng) a.go 文件里沒(méi)有引用其他文件的變量等元素時(shí),可以直接使用 go run ./a.go 運(yùn)行。

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

運(yùn)行文件

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

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

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

直接運(yùn)行文件會(huì)報(bào)錯(cuò)

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

正確的運(yùn)行方式

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)鍵字

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

package

聲明

語(yǔ)法格式: package xxx。

package main

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

注意點(diǎn):

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

同一個(gè)文件夾內(nèi),每個(gè) Go 文件的包聲明必須一致,否則會(huì)報(bào)錯(cuò)。

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

引入

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

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

注意點(diǎn):

引入包而沒(méi)有使用,會(huì)報(bào)錯(cuò)。

匿名引入:

import _ "fmt" // 起別名

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

func init() {
}

基本數(shù)據(jù)類(lèi)型

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

整形數(shù)據(jù)類(lèi)型

有符號(hào)整數(shù)類(lèi)型

類(lèi)型占用存儲(chǔ)空間表數(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

無(wú)符號(hào)整數(shù)類(lèi)型

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

其他整數(shù)類(lèi)型

類(lèi)型有無(wú)符號(hào)占用存儲(chǔ)空間表數(shù)范圍
int32位系統(tǒng)-4字節(jié), 64位系統(tǒng)-8字節(jié)-2^31 ~ 2^31-1, -2^63 ~ 2^63-1
uint無(wú)32位系統(tǒng)-4字節(jié), 4位系統(tǒng)-8字節(jié)0 ~ 2^31-1, 0~2^64-1
rune等價(jià) int32-2^31 ~ 2^31-1
byte無(wú)等價(jià) unint80~255

浮點(diǎn)數(shù)據(jù)類(lèi)型

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

字符類(lèi)型

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

布爾類(lèi)型

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

字符串類(lèi)型

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

基本數(shù)據(jù)類(lèi)型的默認(rèn)值

數(shù)據(jù)類(lèi)型默認(rèn)值
整數(shù)類(lèi)型0
浮點(diǎn)類(lèi)型0
布爾類(lèi)型false
字符串類(lèi)型""

常量和變量聲明

常量聲明: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)部的變量)時(shí),還可以使用 := 去聲明,切記是局部變量,全局變量不能使用 :=,否則會(huì)報(bào)錯(cuò)。

realName := "chenmingyong"
Age := 18

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

注意點(diǎn):

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    go中的protobuf和grpc使用教程

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

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

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

    GO語(yǔ)言標(biāo)準(zhǔn)錯(cuò)誤處理機(jī)制error用法實(shí)例

    這篇文章主要介紹了GO語(yǔ)言標(biāo)準(zhǔn)錯(cuò)誤處理機(jī)制error用法,實(shí)例分析了錯(cuò)誤處理機(jī)制的具體用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • win10下go mod配置方式

    win10下go mod配置方式

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

最新評(píng)論