go语言复数包_go语言学习之包和变量详解
前言
本文主要介紹了關于go語言之包和變量的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
一、包的概念
包是go語言中不可缺少部分,在每個go源碼的第一行進行定義,定義方式是:package "包名",并且該名稱是作為調用該包時候所使用的名稱。
包的概念總結:
每個 Go 文件都屬于且僅屬于一個包。一個包可以由許多以 .go 為擴展名的源文件組成,因此文件名和包名可能不同,為了規范,功能相似或者屬于相同性質的源碼歸集到相同的包名中。
每個應用程序都必須有且只有一個包名稱為main,他是該程序的入口,執行時候會尋找包名為main的代碼
包與包之間可以被相互調用,主要為了減少代碼重復性
包一旦被引入就需要被使用,除非引入的時候忽略它(前面加_表示忽略它,只是用它來初始化),如果引入了包,而在代碼中沒用使用,運行時候會報錯
二、包的引入
1.包引入的方法
方法一:
import "fmt"
import "os"
方法二:
import "fmt"; import "os"
方法三(推薦!)
import (
"fmt"
"os"
)
2.引入其他包
go語言中,引入包的路徑是根據GOPATH/src 這個環境變量作為相對路徑進行引入的,如果GOPATH存在多個,那么go將逐一尋找路徑,直到找到,若GOPATH/src未找到則編譯出錯。
示例:
我的GOPATH為:C:\Users\17647\Desktop\go_work\src
首先建立包文件1:C:\Users\17647\Desktop\go_work\src\day02\eg1\pkg.go(相對于GOPATH/src的路徑為day02\eg1\pkg.go)
內容如下:
package add
import "fmt"
func Sum(a int,b int) {
var c int
c = a + b
fmt.Println("res",c)
}
在main進行引入如下:
package main
import (
"fmt"
"day02/eg1" /* 引入包 */
)
func main() {
add.Sum(2,3) /* 調用包 */
fmt.Println("Hello, World!")
}
圖示:
二、變量
1.單個變量的聲明
go語言中,所有變量都必須先聲明在使用,下面是聲明變量和賦值方法:
先聲明后賦值: var ???????? 賦值:變量的賦值格式: =
聲明的同時賦值:var = ?? (簡寫為 變量名稱 :=? 表達式)
示例:
package main
import "fmt"
func main() {
var a string /* 聲明一個變量名為a,類型為字符串的變量 */
a = "wd" /* 對a變量賦值*/
var age int = 22 /* 聲明并賦值變量 */
fmt.Println(a,age)
}
2.多個變量聲明
先聲明后賦值:var ,,? ???? 賦值 : , =? 值1,值2
聲明同時賦值 :var? , = 值1,值2?? 可簡寫為: , = 值1,值2
多個變量還可以使用var()聲明
示例:
package main
import "fmt"
func main() {
var a,b int
a,b = 1,2
var c,d = 3,"wd" /* 類型自動推斷 */
e, f := 4, "hello" /* 簡寫 */
fmt.Println(a,b,c,d,e,f)
}
使用var()聲明
package main
import "fmt"
func main() {
var (
a int //默認值為0
b string // 默認值為空字符串("")
c = 3
)
fmt.Println(a,b,c)
}
3.變量名
命名原則:
首字符可以是任意的Unicode字符或者下劃線
剩余字符可以是Unicode字符、下劃線、數字
不能作為用以下關鍵字作為變量名
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.可見性
可見性即對包外可見,當其他包調用當前包的變量時候是否允許可見(可訪問)。
變量開頭字符大寫,表示可見
變量開頭字母非大寫,則表示私有,不可見
5.變量的作用域
函數內定義的變量稱為局部變量,其作用域在函數內
函數外定義的變量稱為全局變量,作用于整個包,并且該變量首字母大寫,則對其他包可見。
三、常量
常量是一個簡單值的標識符,在程序運行時,不會被修改的量。
常量中的數據類型只可以是布爾型、數字型(整數型、浮點型和復數)和字符串型。
定義常量語法:
const 名稱 類型 = value
多個常量定義語法:
const (
a = 0 //類型自動推倒
b = 1
c = 2
)
iota解釋:
iota,特殊常量,可以認為是一個可以被編譯器修改的常量。
在每一個const關鍵字出現時,被重置為0,然后再下一個const出現之前,每出現一次iota,其所代表的數字會自動增加1。
iota 可以被用作枚舉值:
const (
a = iota
b = iota
c = iota
)
第一個 iota 等于 0,每當 iota 在新的一行被使用時,它的值都會自動加 1;所以 a=0, b=1, c=2 可以簡寫為如下形式:
const (
a = iota
b
c
)
用法:
package main
import "fmt"
func main() {
const (
a = iota //0
b //1
c //2
d = "ha" //獨立值,iota += 1
e //"ha" iota += 1
f = 100 //iota +=1
g //100 iota +=1
h = iota //7,恢復計數
i //8
)
fmt.Println(a,b,c,d,e,f,g,h,i)
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的go语言复数包_go语言学习之包和变量详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python回调函数实例详解_Pytho
- 下一篇: struts2 页面取值_struts2