go語言之行--包與變數

來源:互聯網
上載者:User

標籤:sum   執行   hello   方式   技術   應用程式   fun   sele   檔案組   

一、包的概念

包是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 mainimport (    "fmt"    "day02/eg1"  /* 引入包 */)func main() {    add.Sum(2,3) /* 調用包 */    fmt.Println("Hello, World!")}

圖示:

 

二、變數
1.單個變數的聲明

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

  • 先聲明後賦值: var <變數名稱> <變數類型>         賦值:變數的賦值格式: <變數名稱> = <運算式>
  • 聲明的同時賦值:var <變數名稱> <變數類型> = <運算式>   (簡寫為 變數名稱 :=  運算式)

樣本:

package mainimport "fmt"func main() {    var a string  /* 聲明一個變數名為a,類型為字串的變數 */    a = "wd"      /* 對a變數賦值*/    var age int = 22  /* 聲明並賦值變數 */    fmt.Println(a,age)}
2.多個變數聲明
  • 先聲明後賦值:var <變數1>,<變數2>,<變數3>  <變數類型>     賦值 : <變數1>,<變數2> =  值1,值2
  • 聲明同時賦值 :var  <變數1>,<變數2> = 值1,值2   可簡寫為: <變數1>,<變數2> = 值1,值2
  • 多個變數還可以使用var()聲明

樣本:

package mainimport "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 mainimport "fmt"func main()  {    var (        a int   //預設值為0        b string // 預設值為空白字串("")        c = 3     )    fmt.Println(a,b,c)}

 

3.變數名

命名原則:

  1. 首字元可以是任意的Unicode字元或者底線
  2. 剩餘字元可以是Unicode字元、底線、數字
  3. 不能作為用以下關鍵字作為變數名
break        default      func         interface    selectcase         defer        go           map          structchan         else         goto         package      switchconst        fallthrough  if           range        typecontinue     for          import       return       var
4.可見度

可見度即對包外可見,當其他包調用當前包的變數時候是否允許可見(可訪問)。

  • 變數開頭字元大寫,表示可見
  • 變數開頭字母非大寫,則表示私人,不可見

 

go語言之行--包與變數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.