1. 程式人生 > >[go語言]變數宣告-短變數宣告

[go語言]變數宣告-短變數宣告

短變數宣告

在函式中,可以使用短變數宣告的方式進行變數的宣告和初始化,變數名:= 表示式

package main

import (
    "fmt"
    "math"
)

// hi := "hello" // 非法,短變數宣告方式只能用於函式內部

func main() {
    min, max := 1, 1000
    a, b, c := 1, true, "message"
    d := math.Pow10(2)
    fmt.Println(min, max, a, b, c, d) // 1 1000 1 true message 100
}

JBbFpK.gif

短變數宣告方式確實簡單靈活,但是使用的時候也是需要注意一些地方的。

  • 短變數宣告方式只能用於函式內部區域性變數,不能在包級別中使用。
package main

import (
    "fmt"
)

// hi := "hello" // 非法,短變數宣告方式只能用於函式內部

func main() {
    hi := "hello"
    fmt.Println(hi) // hello
}
  • 短變數宣告語句中至少要宣告一個新的變數。
package main

import (
    "log"
    "os"
)

func main() {
    file, err := os.Open("file.go")
    if err !=
nil { log.Fatal(err) } file, err := os.Create("new.go") // 編譯失敗,no new variables on left side of := if err != nil { log.Fatal(err) } out, err := os.Create("output.go") // 正確,聲明瞭一個新的變數 out, err 這裡執行的是賦值而不是一個新的變數 if err != nil { log.Fatal(err) } }
  • 在不同的作用域(if
    ,for,switch),短變數宣告語句會重新宣告新的變數。
package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("file.go")
    if err != nil {
        file, err := os.Open("file2.go") // file 和 err 在 if 作用域中,是重新宣告的兩個變數
        fmt.Println(&file, &err)         // 通過兩次輸出的 file 和 err 的地址不同可以確認
    }
    fmt.Println(&file, &err)
}

參考資源:

相關推薦

[go語言]變數宣告-變數宣告

短變數宣告 在函式中,可以使用短變數宣告的方式進行變數的宣告和初始化,變數名:= 表示式。 package main import ( "fmt" "math" ) // hi :=

快學 Go 語言第 2 課 —— 變數什麼的最討厭了

任何一門語言裡面最基礎的莫過於變量了。如果把記憶體比喻成一格一格整齊排列的儲物箱,那麼變數就是每個儲物箱的標識,我們通過變數來訪問計算機記憶體。沒有變數的程式對於人類來說是可怕的,需要我們用數字位置來定位記憶體的格子,人類極不擅長這樣的事。這就好比一歲半左右的幼兒還沒有學會很多名詞,只能用手來對物

Go 語言執行時環境變數快速導覽

原文: http://dave.cheney.net/2015/11/29/a-whirlwind-tour-of-gos-runtime-environment-variables Go 語言執行時環境變數快速導覽 Go Runtime除了提供:GC, goroutine排程, 定時器,

go語言基礎之匿名變數和多重賦

1、匿名變數 package main //必須有一個main包 import "fmt" func test() (a, b, c int) { return 1, 2, 3 } func main() { var c, d, e int c, d, e = test

GO語言linux下環境變數

vim /etc/profile 最後一行插入export GOROOT=/usr/local/go export GOPATH=~/golib:~/goprojectexport GOBIN=~/gobinexport PATH=$PATH:$GOROOT/bin:$G

Go語言4-基本語法-變數

變數名     命名規則 a.變數名由一個或多個字母、數字、下劃線組成的序列; b.第一個字元必須是字母或下劃線,不能是數字; c.區分大小寫:myVar 和myvar 是不同的變數名。  命名風格

Linux 安裝go語言及配製環境變數

1、安裝包下載地址:http://www.golangtc.com/download 2、下載成功後  將下載的原始碼包解壓至 /usr/local目錄。 tar  -C  /usr/local

易學筆記-go語言-第4章:基本結構和基本資料型別/4.4 變數/4.4.2 宣告和賦值語句結合

宣告和賦值語句結合 格式:var identifier [type] = value 這裡的type是可選的,具體的型別參照: 第4章:基本結構和基本資料型別/4.2 Go 程式的基本結構和要素/4.2.8 型別 顯式型別舉例: //整型 var a&nbs

GO語言學習:變數宣告和賦值

在此處學習幾種典型的做法 1.和其他語言一樣的定義方法   var name string   //go定義一個字串   name="jxd";     //賦值   2.型別推斷   var name="jxd"   

go語言漸入佳境[3]-變數宣告與賦值

變數 變數是記憶體當中一段空間的抽象描述。變數的型別明確了空間的大小以及空間如何解析。 Go中的變數型別 1 bool byte complex64 complex128 error float32 float64 int int8 int16 int32 int64

[go語言]變數宣告-初始化

初始化 在變數宣告的時候還可以包含初始值,每個變數對應一個,var 變數名 變數型別 = 表示式。 var a int = 1 var a, b string = "hello", "world" 如

C語言 - while迴圈體內變數重新宣告,陷入死迴圈。

今天寫一個實驗程式碼時,用到了while(exp)迴圈。發現exp已經為false。但是依然死迴圈下去。 float T = (float)work[srcNode] / (workAll/6); int consume = 0; float flag = 1.5; while( T &g

C語言變數和函式的宣告與定義

一、變數在將變數前,先解釋一下宣告和定義這兩個概念。宣告一個變數意味著向編譯器描述變數的型別,但並不為變數分配儲存空間。定義一個變數意味著在宣告變數的同時還要為變數分配儲存空間。在定義一個變數的同時還可以對變數進行初始化。 區域性變數通常只定義不宣告,而全域性變數多在原始檔中定義,在標頭檔案中宣告。 區域性變

C語言變數宣告問題——變數定義一定要放在所有執行語句/語句塊的最前面嗎?

參考網址:http://www.cnblogs.com/web-HCJ/p/4468689.html 報錯資訊:error C2065: 'salary' : undeclared identifier 1 2 3 4 5 6 7 8 9

typeSript(2)-變數,方法的宣告

變數的宣告 1.有哪些變數: Undefined : Number:浮點型別; string : 字串型別; Boolean: 布林型別; enum:列舉型別; any : 任意型別; void:空型別; Array : 陣列型別; Tuple : 元祖型別; Null :空型別。

《21天學通C#》變數使用前需要宣告和賦值,賦值後可以重新賦新的值

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 變數宣告賦值使用{ class Program { static

三:go語言變數,常量,列舉,布林

1:一個包下面可以有多個人原始檔 2:import按照書序匯入載入(優先執行檔案裡的init方法) 3:類型別名不能參加正常運算(要同一個型別的前提下才行) 4:申明的變數沒有使用,也會報錯 5:定義包名 -> 最好資料夾唯獨定義包名 6:var a,b,c = 11,21,31

00012java變數的本質_宣告格式和初始化問題

變數的本質就是代表一個“可操作的儲存空間”,空間位置是確定的,但是裡面入置什麼值不確認。 我們可以通過變數名來訪問“對應的儲存空間”,從面操作這個“儲存空間”儲存的值。 java是一種強型別語言,每一個變數都必宣告它的資料型別,變數的資料型別決定了變數佔據的儲存空間大小,比如int

子函式改全域性變數前要先宣告(一般不這樣用)

school = "Oldboy edu."def change_name(name): global school #改全域性變數前要先宣告 print('before change',name,school) school = "YunNan University" na

Go語言學習筆記(二) 基本語法、變數、常量、型別

基本語法 Go語言中的標記 Go程式是由各種標記組成的,標記可以是關鍵字,識別符號,常量,字串文字或符號。例如,以下Go語句由六個標記組成: fmt.Println("Hello, World!") 每個標記單獨表示為: fmt . Println ( "Hello, World