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

go語言學(xué)習(xí)之包和變量詳解

 更新時(shí)間:2018年06月16日 11:17:58   作者:W-D  
這篇文章主要給大家愛介紹了關(guān)于go語言學(xué)習(xí)之包和變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用go語言具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

本文主要介紹了關(guān)于go語言之包和變量的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

一、包的概念

包是go語言中不可缺少部分,在每個(gè)go源碼的第一行進(jìn)行定義,定義方式是:package "包名",并且該名稱是作為調(diào)用該包時(shí)候所使用的名稱。

包的概念總結(jié):

  • 每個(gè) Go 文件都屬于且僅屬于一個(gè)包。一個(gè)包可以由許多以 .go 為擴(kuò)展名的源文件組成,因此文件名和包名可能不同,為了規(guī)范,功能相似或者屬于相同性質(zhì)的源碼歸集到相同的包名中。
  • 每個(gè)應(yīng)用程序都必須有且只有一個(gè)包名稱為main,他是該程序的入口,執(zhí)行時(shí)候會(huì)尋找包名為main的代碼
  • 包與包之間可以被相互調(diào)用,主要為了減少代碼重復(fù)性
  • 包一旦被引入就需要被使用,除非引入的時(shí)候忽略它(前面加_表示忽略它,只是用它來初始化),如果引入了包,而在代碼中沒用使用,運(yùn)行時(shí)候會(huì)報(bào)錯(cuò)

二、包的引入

1.包引入的方法

方法一:

import "fmt"
import "os"

方法二:

import "fmt"; import "os"

方法三(推薦?。?/p>

import (
 "fmt"
 "os"
)

2.引入其他包

go語言中,引入包的路徑是根據(jù)GOPATH/src 這個(gè)環(huán)境變量作為相對(duì)路徑進(jìn)行引入的,如果GOPATH存在多個(gè),那么go將逐一尋找路徑,直到找到,若GOPATH/src未找到則編譯出錯(cuò)。

示例:

我的GOPATH為:C:\Users\17647\Desktop\go_work\src

首先建立包文件1:C:\Users\17647\Desktop\go_work\src\day02\eg1\pkg.go(相對(duì)于GOPATH/src的路徑為day02\eg1\pkg.go)

內(nèi)容如下:

package add 

import "fmt"

func Sum(a int,b int) {
 var c int
 c = a + b
 fmt.Println("res",c) 

}

在main進(jìn)行引入如下:

package main

import (
 "fmt"
 "day02/eg1" /* 引入包 */
)

func main() {
 add.Sum(2,3) /* 調(diào)用包 */
 fmt.Println("Hello, World!")
}

圖示:

二、變量

1.單個(gè)變量的聲明

go語言中,所有變量都必須先聲明在使用,下面是聲明變量和賦值方法:

  • 先聲明后賦值: var <變量名稱> <變量類型>         賦值:變量的賦值格式: <變量名稱> = <表達(dá)式>
  • 聲明的同時(shí)賦值:var <變量名稱> <變量類型> = <表達(dá)式>   (簡(jiǎn)寫為 變量名稱 :=  表達(dá)式)

示例:

package main

import "fmt"
func main() {

 var a string /* 聲明一個(gè)變量名為a,類型為字符串的變量 */
 a = "wd" /* 對(duì)a變量賦值*/
 var age int = 22 /* 聲明并賦值變量 */
 fmt.Println(a,age)
}

2.多個(gè)變量聲明

  • 先聲明后賦值:var <變量1>,<變量2>,<變量3>  <變量類型>     賦值 : <變量1>,<變量2> =  值1,值2
  • 聲明同時(shí)賦值 :var  <變量1>,<變量2> = 值1,值2   可簡(jiǎn)寫為: <變量1>,<變量2> = 值1,值2
  • 多個(gè)變量還可以使用var()聲明

示例:

package main

import "fmt"
func main() {

 var a,b int
 a,b = 1,2
 var c,d = 3,"wd" /* 類型自動(dòng)推斷 */
 e, f := 4, "hello" /* 簡(jiǎn)寫 */
 fmt.Println(a,b,c,d,e,f)
}

使用var()聲明

package main

import "fmt"

func main() {
 var (
 a int //默認(rèn)值為0
 b string // 默認(rèn)值為空字符串("")
 c = 3 
 )
 fmt.Println(a,b,c)
}

3.變量名

命名原則:

  • 首字符可以是任意的Unicode字符或者下劃線
  • 剩余字符可以是Unicode字符、下劃線、數(shù)字
  • 不能作為用以下關(guān)鍵字作為變量名

break        default      func         interface    select
case         defer        go           map          struct
chan         else         goto         package      switch
const        fallthrough  if           range        type
continue     for          import       return       var

4.可見性

可見性即對(duì)包外可見,當(dāng)其他包調(diào)用當(dāng)前包的變量時(shí)候是否允許可見(可訪問)。

  • 變量開頭字符大寫,表示可見
  • 變量開頭字母非大寫,則表示私有,不可見

 5.變量的作用域

  • 函數(shù)內(nèi)定義的變量稱為局部變量,其作用域在函數(shù)內(nèi)
  • 函數(shù)外定義的變量稱為全局變量,作用于整個(gè)包,并且該變量首字母大寫,則對(duì)其他包可見。

三、常量

常量是一個(gè)簡(jiǎn)單值的標(biāo)識(shí)符,在程序運(yùn)行時(shí),不會(huì)被修改的量。

常量中的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整數(shù)型、浮點(diǎn)型和復(fù)數(shù))和字符串型。

定義常量語法:

const 名稱 類型 = value

多個(gè)常量定義語法:

const (
 a = 0 //類型自動(dòng)推倒
 b = 1
 c = 2
)

iota解釋:

iota,特殊常量,可以認(rèn)為是一個(gè)可以被編譯器修改的常量。

在每一個(gè)const關(guān)鍵字出現(xiàn)時(shí),被重置為0,然后再下一個(gè)const出現(xiàn)之前,每出現(xiàn)一次iota,其所代表的數(shù)字會(huì)自動(dòng)增加1。

iota 可以被用作枚舉值:

const (
 a = iota
 b = iota
 c = iota
)

第一個(gè) iota 等于 0,每當(dāng) iota 在新的一行被使用時(shí),它的值都會(huì)自動(dòng)加 1;所以 a=0, b=1, c=2 可以簡(jiǎn)寫為如下形式:

const (
 a = iota
 b
 c
)

用法:

package main

import "fmt"

func main() {
 const (
   a = iota //0
   b   //1
   c   //2
   d = "ha" //獨(dú)立值,iota += 1
   e   //"ha" iota += 1
   f = 100 //iota +=1
   g   //100 iota +=1
   h = iota //7,恢復(fù)計(jì)數(shù)
   i   //8
 )
 fmt.Println(a,b,c,d,e,f,g,h,i)
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • go語言日志實(shí)現(xiàn)詳解(打印日志、日志寫入文件和日志切割)

    go語言日志實(shí)現(xiàn)詳解(打印日志、日志寫入文件和日志切割)

    golang內(nèi)置了log包,實(shí)現(xiàn)簡(jiǎn)單的日志服務(wù),下面這篇文章主要給大家介紹了關(guān)于go語言日志實(shí)現(xiàn)(打印日志、日志寫入文件和日志切割)的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Go語言并發(fā)范式之future模式詳解

    Go語言并發(fā)范式之future模式詳解

    編程中經(jīng)常遇到在一個(gè)流程中需要調(diào)用多個(gè)子調(diào)用的情況,此時(shí)就可以使用Go并發(fā)編程中的future模式,下面小編就來和大家聊聊future模式的具體使用,需要的可以參考一下
    2023-06-06
  • Golang中空的切片轉(zhuǎn)化成 JSON 后變?yōu)?nbsp;null 問題的解決方案

    Golang中空的切片轉(zhuǎn)化成 JSON 后變?yōu)?nbsp;null 問題的解決方案

    在 Golang 中,經(jīng)常需要將其他類型(例如 slice、map、struct 等類型)的數(shù)據(jù)轉(zhuǎn)化為 JSON 格式,有時(shí)候轉(zhuǎn)化的結(jié)果并不是預(yù)期中的,例如將一個(gè)空的切片轉(zhuǎn)化為 JSON 時(shí),會(huì)變成"null",所以本文將給大家介紹一下解決方法,需要的朋友可以參考下
    2023-09-09
  • go語言yaml轉(zhuǎn)map、map遍歷的實(shí)現(xiàn)

    go語言yaml轉(zhuǎn)map、map遍歷的實(shí)現(xiàn)

    本文主要介紹了go語言yaml轉(zhuǎn)map、map遍歷的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 解析Go的Waitgroup和鎖的問題

    解析Go的Waitgroup和鎖的問題

    大家在學(xué)習(xí)go語言的時(shí)候,都知道go語言支持并發(fā),使用 goroutine,使用關(guān)鍵字 go 即可,接下來通過本文給大家分享Go的Waitgroup和鎖的問題,需要的朋友可以參考下
    2021-05-05
  • 解決Go語言中高頻次和高并發(fā)下隨機(jī)數(shù)重復(fù)的問題

    解決Go語言中高頻次和高并發(fā)下隨機(jī)數(shù)重復(fù)的問題

    在Golang中,獲取隨機(jī)數(shù)的方法一般會(huì)介紹有兩種,一種是基于math/rand的偽隨機(jī),一種是基于crypto/rand的真隨機(jī),math/rand由于其偽隨機(jī)的原理,經(jīng)常會(huì)出現(xiàn)重復(fù)的隨機(jī)數(shù),導(dǎo)致在需要進(jìn)行隨機(jī)的業(yè)務(wù)出現(xiàn)較多的重復(fù)問題,所以本文給大家介紹了較好的解放方案
    2023-12-12
  • Go語言流程控制之goto語句與無限循環(huán)

    Go語言流程控制之goto語句與無限循環(huán)

    這篇文章主要介紹了Go語言流程控制之goto語句與無限循環(huán),是golang入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • 使用Go語言編寫簡(jiǎn)潔代碼的最佳實(shí)踐

    使用Go語言編寫簡(jiǎn)潔代碼的最佳實(shí)踐

    簡(jiǎn)潔的代碼對(duì)于創(chuàng)建可維護(hù)、可閱讀和高效的軟件至關(guān)重要,Go 是一種強(qiáng)調(diào)簡(jiǎn)單和代碼整潔的語言,在本文中,我們將結(jié)合代碼示例,探討編寫簡(jiǎn)潔 Go 代碼的最佳實(shí)踐,需要的朋友可以參考下
    2023-09-09
  • golang替換無法顯示的特殊字符(\u0000,?\000,?^@)

    golang替換無法顯示的特殊字符(\u0000,?\000,?^@)

    這篇文章主要介紹了golang替換無法顯示的特殊字符,包括的字符有\(zhòng)u0000,?\000,?^@等,下文詳細(xì)資料,需要的小伙伴可以參考一下
    2022-04-04
  • Go語言中的原子操作使用詳解

    Go語言中的原子操作使用詳解

    這篇文章主要介紹了Go語言中的原子操作使用詳解的相關(guān)資料,需要的朋友可以參考下
    2023-08-08

最新評(píng)論