package mainimport"fmt"funcmain(){var a string="Runoob"// 變量 a 類型 string字符串 值為 Runoobfmt.Println(a)// 打印 a 變量var b, c int=1,2// 變量b c 類型 int 值為 b=1 c=2fmt.Println(b,c)}
以上實例輸出結果如下
Runoob
12
二、變量聲明
2.1、第一種聲明方式
第一種,指定變量類型,如果沒有初始化值,則變量默認為系統變量值(默認值根據系統而定)
var v_name v_type
零值就是變量沒有做初始化時系統默認設置的值
package mainimport"fmt"funcmain(){// 聲明一個變量并初始化值var a string="RUNOOB"fmt.Println(a)// 沒有初始化就是變量類型默認值(int類型默認值為0)var b intfmt.Println(b)// bool零值為falsevar c boolfmt.Println(c)}
以上實例執行結果為
RUNOOB
0false
數值類型(包括complex64/128)為0
布爾型為false
字符串為""(空字符串)
以下幾種類型為nil
var a *intvar a []intvar a map[string]intvar a chanintvar a func(string)intvar a error// error 是接口
以下是一個實例
package mainimport"fmt"funcmain(){var i intvar f float64var b boolvar s string// %v是默認格式動詞,用于打印變量的默認表示形式// %q用于打印帶引號的字符串fmt.Printf("%v,%v,%v,%q\n",i,f,b,s)}
2.2、第二種聲明方式
根據值自行判定變量類型
var v_name = value
以下是一個實例
package mainimport"fmt"funcmain(){var a =truevar b =888var c =6.6var d ="真幸運"// $T可以獲取變量的類型 \n進行換行fmt.Printf("%T\n",a) fmt.Printf("%T\n",b)fmt.Printf("%T\n",c)fmt.Printf("%T\n",d)}
輸出結果如下
bool
int
float64
string
2.3、第三種聲明方式
如果變量已經使用var聲明過了,再使用:=聲明變量,就會產生編譯錯誤,格式如下
vname := value
以下是一個錯誤示范
var intVal int
intVal :=1// 這時候會產生編譯錯誤,因為intVal已經聲明,不需要重新聲明
直接使用下面的語句即可:
intval :=1// 此不會產生編譯錯誤,因為有聲明的新變量,因為 := 是一個聲明語句
intVal := 1就相當于
var intVal int=1
可以將var f string = "Runoob"簡寫為 f := "Runoob"
package mainimport"fmt"funcmain(){f :="Runoob"// 相當于 var f string = "Runoob"fmt.Println(f)}
package mainimport"fmt"var x, y intvar(a intb bool)var c, d int=1,2var e, f =123,"hello"// 這種不帶聲明格式的只能在函數體中出現// g, h := 123, "hello"funcmain(){g, h :=123,"hello"fmt.Println(x,y,a,b,c,d,e,f,g,h)}
以上實例執行結果為
000false12123 hello 123 hello
2.5、打印變量占用字節
package mainimport("fmt""unsafe")func main(){var name string ="小美"fmt.Println(unsafe.Sizeof(name))}