Go語言從入門到放棄(一) 變量/常量/函數


HelloWorld

我們先看看一個最簡單的HelloWorld代碼

1 package main
2 
3 import "fmt"
4 
5 func main() {
6    fmt.Println("Hello, World!")
7 }

這段代碼可以在控制台輸出 "Hello, World!"

下面讓我們來刨析一下此段代碼

第一行的 package main  定義了該程序的包名為 main ,main的功能同其它語言一樣,都代表着程序的主要部分/入口,每一個應用都應該有一個main

第三行的  import "fmt"  代指引入fmt模塊,fmt模塊作用是輸入輸出,同學們可以暫且把他們看作Python的Print,要注意的是Go語言中禁止引入模塊而不使用,這是為了保證代碼的可讀性和簡潔性.

第五行開始 為構建一個名為main的函數,同Python類的main類似,當定義main后執行該模塊會先執行main函數,當定義了init函數時會優先執行init初始化函數,Println函數也可以打印變量的值,此時不帶引號.

# 當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Group1,那么使用這種形式的標識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導入這個包),這被稱為導出(像面向對象語言中的 public);標識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見並且可用的(像面向對象語言中的 protected )。  ---- 菜鳥教程

#  Go語言中的多行注釋是 /* */  單行注釋是 // 

Go語言中變量的定義使用

Go語言的建立變量如下

var sum int

分三個部分來讀

新建變量  變量名  類型

注意變量名要規避Go語言的關鍵字(關鍵字以后會整理)

我們無法在函數外使用變量,會報錯

syntax error: non-declaration statement outside function body
語法錯誤:函數主體之外的非聲明語句

當我們在函數內使用變量則正確

 1 package main
 2 
 3 import "fmt"
 4 
 5 var sum int
 6 
 7 func main()  {
 8     sum = 1997
 9     fmt.Println(sum)
10 }

導入包內的變量

 每個Go項目都由多個包組成,當我們想要在A包中調用B包內的變量,首先要保證已經導入A,其次要保證要導入的變量第一個字母大寫

我們引入math包,math.Pi是圓周率

package main

import (
    "fmt"
    "math"
)

//var sum int

func main()  {
    //sum = 1997
    //fmt.Println(sum, rand.Intn(10))
    fmt.Println(math.Pi)
}

可以正常打印,但是當我們改成小p,則會輸出錯誤

cannot refer to unexported name math.pi
無法引用未導出的名稱math.pi

函數的傳參與返回

package main

import (
    "fmt"
)

func add(x int, y string) (int, string) {
    return x, y
}
func main()  {
    fmt.Println(add(1, "ad"))
}

我們來看這段代碼,我們新建了一個函數為add,當我們需要傳參時要指定參數的類型

(x int, y string) 代表可接受兩個參數,x是int類型,y是str類型,如果我們接受的x,y都是一個類型可以簡寫為 (x, y int)
(int, string) 代表返回兩個參數,第一個參數為int類型,第二個參數為str類型,返回時不可簡寫
我們也可以直接寫return,這樣會將所有函數內變量傳出

package main

import "fmt"

func add(x, y int) (sum int) {
    sum = x + y
    return 
}

func main()  {
    fmt.Println(add(1, 2))
}

但是這樣還是需要傳出變量的名字,而且這樣代碼的可讀性不是太好,所以我們不推薦這樣使用

變量的定義

var語句可以同時將多個變量定義為一個類型

package main

import "fmt"

func add(x, y int) (sum int) {
    sum = x + y
    return
}

var a, b, c bool

func main()  {
    a = true
    fmt.Println(a, b, c)
}

此時一個var語句定義了 a,b,c 三個變量,同時定義為bool值

又因為變量為空所以都是False

我們在main中又將a賦值為True

此時打印結果為

true false false

 

我們還可以在定義變量時賦予變量值

package main

import "fmt"

func add(x, y int) (sum int) {
    sum = x + y
    return
}

var a, b, c bool = true, true, false

func main()  {
    fmt.Println(a, b, c)
}

此時結果為

true true false

這種方式作用等同於

package main

import "fmt"

func add(x, y int) (sum int) {
    sum = x + y
    return
}

var a=true
var b=false
var c=true

func main()  {
    fmt.Println(a, b, c)
}

結果為

true false true

 

在函數內部我們可以不使用var定義變量,方法為

package main

import "fmt"

func main()  {
    a := 1
    b := "ad"
    fmt.Println(a, b)
}

結果為

1 ad

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM