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

手把手帶你走進(jìn)Go語言之語法基礎(chǔ)解析

 更新時(shí)間:2021年09月10日 16:16:05   作者:我是小白呀  
這篇文章主要介紹了手把手帶你走進(jìn)Go語言之語法基礎(chǔ),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

概述

Golang 是一個(gè)跨平臺(tái)的新生編程語言. 今天小白就帶大家一起攜手走進(jìn) Golang 的世界. 在這里插入圖片描述

Go 語法基礎(chǔ)

Go 程序可以由多個(gè)標(biāo)記組成:

  • 關(guān)鍵字
  • 標(biāo)識(shí)符
  • 常量
  • 字符串
  • 符號(hào)

在這里插入圖片描述

關(guān)鍵字

Go 語言有 25 個(gè)關(guān)鍵字:

關(guān)鍵字 作用
var & const 變量和常量的聲明
package & import 導(dǎo)入
func 用于定義函數(shù)和方法
return 用于函數(shù)返回
defer someCode 在函數(shù)退出前執(zhí)行
go 用于并行
select 用于選擇不同類型的通訊
interface 用于定義接口
struct 用于定義抽象數(shù)據(jù)類型
break, case, continue, for, falthrough, else, if. switch, goto, defult 流程控制
chan 用于 channel 通訊
type 用于聲明自定義類型
map 用于聲明 map 類型數(shù)據(jù)
range 用于讀取 slice, map, channel 數(shù)據(jù)

標(biāo)識(shí)符

標(biāo)識(shí)符用來命名變量, 類型等程序?qū)嶓w. 一個(gè)標(biāo)識(shí)符實(shí)際上就是一個(gè)或者多個(gè)字母 (A-Z 和 a-z), 數(shù)字 (0-9), 下劃線 (_) 組成的序列. 但是第一個(gè)字符必須是字母或者下?lián)Q線而不是數(shù)字.

在這里插入圖片描述

Go 不允許在表示符中使用標(biāo)點(diǎn)符號(hào), 例如: “@”, “$”, 和 “%”. 并且 Go 是一種區(qū)分大小寫的編程語言.

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

類型 說明
布爾類型 (Boolean) true / false
整數(shù)類型 (Integer) 1, 2, 3, 4, …
浮點(diǎn)類型 (Float) 1.1, 2.2, 3.3, 4.4, …
字符串類型 (String) 字符串類型表示字符串值的合集. 字符串是不可變類型, 一旦創(chuàng)建后, 就不可能改變字符串的內(nèi)容.
派生類型 包括指針可型, 數(shù)組類型, 結(jié)構(gòu)類型, 聯(lián)合類型, 函數(shù)類型, 切片類型, 接口類型

例子:

package main

import "fmt"

func main() {

	// 定義字符串變量
	var str = "我是小白呀"

	// 定義整數(shù)型變量
	var integer = 8

	// 定義浮點(diǎn)型變量
	var float = 1.2

	// 定義布爾類型變量
	var bool = true

	fmt.Println("string: ", str, "\ninteger: ", integer, "\nfloat: ", float, "\nboolean: ", bool)

}

輸出結(jié)果:

string: 我是小白呀
integer: 8
float: 1.2
boolean: true

變量聲明

格式 1, 指定變量類型, 聲明后再進(jìn)行賦值:

var  變量名 變量類型
變量名 = 值

格式 2, 根據(jù)值自行判定變量類型:

var 變量名 = 值

格式 3, 省略 var. (注意: “:=” 左側(cè)的變量不應(yīng)該是已經(jīng)聲明過的, 否則會(huì)導(dǎo)致編譯錯(cuò)誤):

v_name := value

在這里插入圖片描述

例子:

package main

import "fmt"

func main() {

	// 方法一
	var num1 int      // 聲明變量
	num1 = 1          // 賦值
	fmt.Println(num1) // 調(diào)試輸出

	// 方法二
	var num2 = 2      // 自行判定變量類型
	fmt.Println(num2) // 調(diào)試輸出

	// 方法三
	num3 := 3         // 省略var
	fmt.Println(num3) // 調(diào)試輸出
	
}

輸出結(jié)果:

1
2
3

多變量聲明

格式:

var 變量名稱1, 變量名稱2, 變量名稱3 = 值1, 值2, 值2

例子:

package main

import "fmt"

func main() {

	// 多變量聲明
	var num4, num5, num6 = 1, 2, 3
	fmt.Println(num4, num5, num6)  // 調(diào)試輸出
}

輸出結(jié)果:

1 2 3

值類型和引用類型

所有像 int, float, bool 和 string 這些基本類型都屬于值類型. 使用這些類型的變量直接指向存在內(nèi)存中的值.

在這里插入圖片描述

當(dāng)使用等號(hào) “=” 將一個(gè)變量賦值給另一個(gè)變量時(shí) (num2 = num1). 實(shí)際上在內(nèi)存中將 num1 的值進(jìn)行了拷貝.

例子:

package main

import "fmt"

func main() {

	// 定義變量
	var num1 = 2
	var num2 = num1

	// 調(diào)試輸出值和地址
	fmt.Println(num1, &num1)
	fmt.Println(num2, &num2)
}

輸出結(jié)果:

2 0xc0000ac058
2 0xc0000ac070

到此這篇關(guān)于手把手帶你走進(jìn)Go語言之語法基礎(chǔ)解析的文章就介紹到這了,更多相關(guān)Golang 語法基礎(chǔ)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang因Channel未關(guān)閉導(dǎo)致內(nèi)存泄漏的解決方案詳解

    Golang因Channel未關(guān)閉導(dǎo)致內(nèi)存泄漏的解決方案詳解

    這篇文章主要為大家詳細(xì)介紹了當(dāng)Golang因Channel未關(guān)閉導(dǎo)致內(nèi)存泄漏時(shí)蓋如何解決,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-07-07
  • go語言template用法實(shí)例

    go語言template用法實(shí)例

    這篇文章主要介紹了go語言template用法,實(shí)例分析了template的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 用Go+WebSocket快速實(shí)現(xiàn)一個(gè)chat服務(wù)

    用Go+WebSocket快速實(shí)現(xiàn)一個(gè)chat服務(wù)

    這篇文章主要介紹了用Go+WebSocket快速實(shí)現(xiàn)一個(gè)chat服務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Go語言中nil判斷引起的問題詳析

    Go語言中nil判斷引起的問題詳析

    這篇文章主要給大家介紹了關(guān)于Go語言中nil判斷引起問題的相關(guān)資料,nil 是Go語言中一個(gè)預(yù)定義好的標(biāo)識(shí)符,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-06-06
  • 深入學(xué)習(xí)Golang并發(fā)編程必備利器之sync.Cond類型

    深入學(xué)習(xí)Golang并發(fā)編程必備利器之sync.Cond類型

    Go?語言的?sync?包提供了一系列同步原語,其中?sync.Cond?就是其中之一。本文將深入探討?sync.Cond?的實(shí)現(xiàn)原理和使用方法,幫助大家更好地理解和應(yīng)用?sync.Cond,需要的可以參考一下
    2023-05-05
  • GO項(xiàng)目實(shí)戰(zhàn)之Gorm格式化時(shí)間字段實(shí)現(xiàn)

    GO項(xiàng)目實(shí)戰(zhàn)之Gorm格式化時(shí)間字段實(shí)現(xiàn)

    GORM自帶的time.Time類型JSON默認(rèn)輸出RFC3339Nano格式的,下面這篇文章主要給大家介紹了關(guān)于GO項(xiàng)目實(shí)戰(zhàn)之Gorm格式化時(shí)間字段實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Go語言中反射的正確使用

    Go語言中反射的正確使用

    Go本身不支持模板,因此在以往需要使用模板的場(chǎng)景下往往就需要使用反射(reflect). 反射使用多了以后會(huì)容易上癮,有些人甚至?xí)纬梢环N莫名其妙的鄙視鏈。下面這篇文章就給大家介紹了如何正確使用Go語言中的反射以及在使用前的注意,有需要的朋友們下面來一起看看吧。
    2016-12-12
  • Go語言中錯(cuò)誤處理實(shí)例分析

    Go語言中錯(cuò)誤處理實(shí)例分析

    這篇文章主要介紹了Go語言中錯(cuò)誤處理,實(shí)例分析了Go語言中針對(duì)錯(cuò)誤處理的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • golang?RPC包原理和使用詳細(xì)介紹

    golang?RPC包原理和使用詳細(xì)介紹

    golang的rpc支持三個(gè)級(jí)別的RPC:TCP、HTTP、JSONRPC。但Go的RPC包是獨(dú)一無二的RPC,它和傳統(tǒng)的RPC系統(tǒng)不同,它只支持Go開發(fā)的服務(wù)器與客戶端之間的交互,因?yàn)樵趦?nèi)部,它們采用了Gob來編碼
    2022-09-09
  • golang連接MongoDB數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)操作指南

    golang連接MongoDB數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)操作指南

    MongoDB是Nosql中常用的一種數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于golang連接MongoDB數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評(píng)論