水滴石穿,非一日之功
前言
? 在環(huán)境變量配置好之后,正式入坑,每一門編程語言都有自己的獨特語法,在一番查找資料后,對go
的基礎(chǔ)語法有一點點了解,下面就來記錄記錄
變量定義
在go
中變量的定義與Objective-C
或者是C
中的定義都不一樣,這里引入了關(guān)鍵字var
,倒是和swift
有點類似,并且都是將變量的類型放在變量名后面
如以下的定義
//定義一個float64類型的名為"width"的變量
var width float64
當(dāng)然我們也可以進(jìn)行多變量的聲明
//多變量聲明 聲明三個string類型的變量
var q,w,e string
定義變量并初始化賦值
var width float64 = 100.0
當(dāng)然我們也可以同時初始化幾個變量
var q,w,e string = "dd","12","300"
如果覺得這樣復(fù)雜的話 我們還可以不定義類型 直接像下面這樣來定義
//不聲明類型 自動識別 為int類型
var dc = 234
//后面三種類型需保持一致
var q,w,e = "dd","12","300"
如果還覺得麻煩的話,那么只能....下面這樣了,連var
都省了
//簡短聲明 這是使用變量的首選形式,但是它只能被用在函數(shù)體內(nèi),而不可以用于全局變量的聲明與賦值
a := "1234"
//多變量聲明
var q,w,e string
q,w,e = "opop","ddd","cmdd"
//直接使用簡短聲明
o,p,k := q,w,e
:=
這個符號直接取代了var
和type
,這種形式叫做簡短聲明。不過它有一個限制,那就是它只能用在函數(shù)內(nèi)部;在函數(shù)外部使用則會無法編譯通過,所以一般用var
方式來定義全局變量
不可以再次對相同名稱的變量使用初始化聲明,比如上面的字符串o
我們不能再像下面這樣
//o := "gkl" //錯誤
o = "gkl"http://可以的
全局變量,關(guān)于全局變量,我們一般使用var
在函數(shù)體外來定義
如下
package hellotest
//定義全局變量
var str string;
var width float64;
var height float64 = 123;
關(guān)于全局變量和局部變量,在go
中與其他語言有點不一樣的就是,如果局部變量沒有被使用,那么就會報錯,而全局變量不會報錯,所以定義全局變量的時候,一定要使用
對于全局變量,我們還可以使用()
的方式,來將其統(tǒng)一管理起來,如下
//多個全局變量 可以用括號的方式來統(tǒng)一定義
var (
str string;
width float64;
height float64 = 123;
)
這和我們導(dǎo)入多個頭文件挺類似的,個人感覺還不錯,至少美觀些,哈哈
常量定義
常量的話,還是和其他語言差不多,都是使用const
關(guān)鍵字來定義
const Pi = 3.1415926
const MaxArea float64 = 100992.0
const name = "Go編程"
可以省略也可以添加常量的類型,當(dāng)然我們也可以使用()
來將所有的常量包起來
//常量必須賦值
const (
minus int = 100
plus int = 200
add float64 = 300
)
枚舉
枚舉的話,與其他語言又不一樣了,go
中沒有enum
這么一個關(guān)鍵字來定義,而是依靠const
和iota
來定義枚舉
//枚舉 iota默認(rèn)為0
const (
first = iota;//默認(rèn)=0
second
three//=2
four
)
iota
定義的值默認(rèn)為0,后面每一行的值加一,比如three
就為2了。
如果聲明多個常量時,都在同一行,那么值一樣
//枚舉 iota默認(rèn)為0
const (
first = iota;//默認(rèn)=0
second
three//=2
four = iota
five,six,seven = iota,iota,iota//都為4
)
學(xué)習(xí)的道路是曲折的,如果有什么問題,還望大家多多指教