一、定義賦值
定義乙個int的
var myvar int
定義多個
var myvar, myvar1, myvar2 int
定義並賦予初始值
var myvar int = 1
定義多個並賦予初始值
var myvar, myvar1, myvar2 int = 1, 2,3
麻煩是吧。
其實可以簡單:
var myvar, myvar1, myvar2 = 1, 2,3
但是還可以簡單:
myvar, myvar1, myvar2 = 1, 2, 3
另外可以每個變數的型別可以不一樣的哦
myvar, myvar1, myvar2 = 1, 2, 「a」
但是這個方式不能用在函式外。 在函式外全域性不能不加上var。不過了還得記住了在函式內定義的變數必須得使用否則編譯不能通過。
二、資料型別
數字型別:
有通用的int 和float型,
int8 ,int16 ,int32 ,int64
byte ,uint8 ,uint16 ,uint32 ,uint64 (無符號型的)
而上面定義的int是與平台相關的。byte是unit8的別名是一樣的型別。
這裡要記住int 和 int16 int32 不能隨便轉換,所有的不同型別都不能互相賦值,必須得自己強制轉換。
例如:package main
import "fmt"
var myvar, myvar1, myvar2 int = 1, 2,3
func main()
字串:
型別名string,在go中都是用的utf8字符集,字串不能直接修改。要修改如下:
s := "hello"
c := byte(s) // 將字串 s 轉換為 byte 型別
c[0] = 'c'
s2 := string(c) // 再轉換回 string 型別
fmt.printf("%s\n", s2)
布林型:
型別名bool
,值是true
或false
,預設為
false。
復合資料型別struct,array,slice,map
struct:
typeastruct struct
mystruct :=
astruct
mystruct.x = 100
mystruct.y = 200
基本和c的一樣 就是訪問的時候用的是的是「.」
陣列array
陣列定義:var by [32] byte
var stru [20] struct
var [3][5] int //多維陣列3行5列
這裡先記住,go提供的陣列是不能改變長度的,另外函式傳遞的時候傳得是值,也就是說會被複製乙份。
切片slice
看到上面是不是覺得陣列用著不方便?不要緊有slice
定義:1.從陣列中建立乙個陣列切片
var myslice int = myarray[1:] //陣列從第乙個元素開始所有的元素
var myslice2 int = myarray[:6] //陣列從開始到第六個元素開始所有的元素
var myslice3 int = myarray[3:6] //陣列從第三個元素到第六個元素
2.直接建立
myslice := make(int 3) //3個元素,初始值為0
myslice2 := make(int 3, 6) //3個元素,初始值為6
myslice3 := int //建立並賦值
map(可以說是hash或者說是字典)宣告
var mapmap map[string] mytype
函式建立
mymap = make(map[string] mytype, 100) //建立100個 賦值
mymap[「123」] = mytype 刪除
delete(mymap, 「123」)
就這樣,完!
C語言(二)變數
學習c語言,就不得不說一下資料。首先,要知道資料的型別和他們的大小,就我個人的理解,所謂型別就是對各種資料按用途進行劃分,便於程式設計師對他們進行使用和理解。cpu都是在記憶體中對資料進行操作,由於記憶體的儲存空間不大,所以為了節省空間,對不同型別的資料進行不同大小的劃分。如 char short ...
go學習筆記 二 變數 常量
原始碼檔案以 test結尾 例如 test.go 測試方法名以test開頭 例如 func test xx t testing.t package fib import fmt testing func testfiblist t testing.t fmt.println 裡邊給出了三種賦值方式 ...
其他(二) 變數
分類 一 系統變數 說明 變數有系統提供的,不用自定義 語法 檢視系統變數 show global session variables like 如果沒有顯式宣告 global 還是 session,則預設為 session 檢視指定的系統變數的值 select global session 變數名...