一、為什么使用開發(fā)工具
* 在企業(yè)開發(fā)中不使用記事本進(jìn)行開發(fā),而使用開發(fā)工具,因為開發(fā)工具可以提升開發(fā)效率。
* 不同公司的開發(fā)工具可能不同,但是每個工具選擇開發(fā)工具時都滿足以下幾點(diǎn)
* 提升開發(fā)效率
* 功能強(qiáng)大
* 軟件使用不是特別復(fù)雜
* 適合公司項目
二、Goland簡介
* Goland由JetBrains公司推出的專門針對Go語言的開發(fā)工具,使用Goland時有如下優(yōu)點(diǎn):
* 代碼提示
* 快速編譯
* 一鍵構(gòu)建
*Goland的下載地址:http://www.jetbrains.com/go/
三、Goland簡單使用
1、新建項目
2、選擇項目的路徑,注意路徑不要包含中文
3、新建Go文件,右鍵”Study”–>”New”–>”Go File”
4、在彈出框中輸入文件名, 選擇Kind為”Simple Application”可以生成包名和主函數(shù)
5、編寫代碼后,在空白位置右鍵,選擇”Run ‘go build main.go'”
6、彈出控制臺,觀察結(jié)果
四、Goland常用配置
* 主題設(shè)置(Darcula)
* 菜單”File”–>”Settings”–>Appearance & Behavior –>右側(cè)Theme修改主題
* 字體大小設(shè)置(24)
* 菜單”File”–>”Settings”–>Editor –> Font –>右側(cè)Size輸入字體大小
* 快捷鍵設(shè)置(Eclipse)
* 菜單”File”–>”Settings”–>右側(cè)選擇自己熟悉軟件的快捷鍵
五、打印輸出
* 在程序中輸出使用頻率很高,使用輸出語句可以在程序執(zhí)行過程中把一些結(jié)果輸出到控制臺中,程序員通過控制臺中輸出結(jié)果判斷是否符合預(yù)期
* 在Go語言中有多種輸出方式,不同的輸出適用場景不同.歸納起來三種,每種還分為3種方式(原內(nèi)容,原內(nèi)容+ln,原內(nèi)容+f)
* PrintXX()
* FprintXX()
* SprintXX()
* FprintXX在Go Web中使用比較多,把內(nèi)容寫到響應(yīng)流中
* Fprintln()輸出后會添加換行符,所以長度比內(nèi)容多1個
*代碼示例:os.Stdout 表示控制臺輸出流
func main() {
fmt.Fprint(os.Stdout, “內(nèi)容1”)//向流中寫入內(nèi)容,多個內(nèi)容之間沒有空格
fmt.Fprintln(os.Stdout, “內(nèi)容2”)//向流中寫入內(nèi)容后額外寫入換行符,多個內(nèi)容之間空格分割
fmt.Fprintf(os.Stdout, “%s”, “內(nèi)容3”)//根據(jù)verb格式向流中寫入內(nèi)容
}
* Println()底層實際是Fprintln(),返回值依然是內(nèi)容長度和錯誤信息
*Sprintln和Println()主要的區(qū)別是:
* Sprintln()把形成結(jié)果以字符串返回,并沒有打印到控制臺
* Println()把結(jié)果打印到控制臺,返回內(nèi)容長度和錯誤
* 所以從嚴(yán)格意義角度講SprintXX不是打印輸出,而更像字符串轉(zhuǎn)換
六、轉(zhuǎn)義字符
* 在Go語言中可以使用%+特定字母或/+特定字母形成轉(zhuǎn)義字符,這個表示特定含義的組合稱為轉(zhuǎn)義字符.
* 在Go語言中又稱為verb
* 轉(zhuǎn)義字符在Go語言中在以下兩種情況使用頻率較高
* 以下為常用轉(zhuǎn)義字符
verb | 含義 |
%d | 十進(jìn)制整數(shù) |
%x,%X | 大小寫方式顯示十六進(jìn)制整數(shù) |
%o | 八進(jìn)制整數(shù) |
%b | 二進(jìn)制整數(shù) |
%f,%g,%e | 浮點(diǎn)數(shù) |
%t | 布爾值 |
%c | 字符 |
%s | 字符串 |
%q | 帶雙引號字符串 |
%v | 內(nèi)置格式內(nèi)容 |
%T | |
%p | 內(nèi)存地址 |
%% | 字符% |
換行 | |
縮進(jìn) |
七、用戶輸入
* 用戶輸入在平時練習(xí)中使用頻率較高.
* 程序運(yùn)行時,運(yùn)行到接收用戶輸入語句,程序阻塞,用戶在控制臺輸入內(nèi)容后,把內(nèi)容賦值給對應(yīng)的變量,程序繼續(xù)運(yùn)行.
* 在Go語言中有多種接收用戶輸入的方式,其中使用fmt包的Scan函數(shù)使用最簡單
* 使用Scanln(&變量名,&變量名)的方式接收.
* 輸入的內(nèi)容必須都在同一行
* 每個內(nèi)容之間使用空格分割
* 回車換行后表示停止輸入.
* 如果希望接收3個值,而在控制臺只輸入2個值,回車后也停止接收
* 如果希望接收2個值,而在控制臺輸入3個,回車后只能接收兩個值
* 也可以使用fmt.Scanf(verb,&變量)按照特定的格式進(jìn)行輸入
* 需要注意,如果同行輸入兩個字符串,中間必須使用空格隔開,否則編譯器無法對輸入內(nèi)容拆分
八、變量聲明和賦值
8.1 靜態(tài)語言和動態(tài)語言
* 靜態(tài)類型語言和強(qiáng)類型語言是同一個意思,表示在編譯期就確定了類型,而且類型是不可以改變的
* 動態(tài)類型語言和弱類型語言是同一個意思,表示在運(yùn)行過程中才能確定,且內(nèi)容是什么類型變量類型跟隨變化
8.2 Go語言變量簡介
* Go語言和其他語言一樣都有基本存儲容器.可以存儲一個或多個值在程序中,方便程序中多次使用容器中內(nèi)容,這個容器稱為:變量
* Go語言雖然是靜態(tài)類型語言,但是支持動態(tài)類型語言語法,因為Go語言希望程序員少聲明變量,增加GC效率
8.3 變量命名規(guī)則
* 以字母或下劃線開頭(Go語言中多不以_開頭)
* 后面可以是任意數(shù)量的字符、數(shù)字和下劃線
* 區(qū)分大小寫
* 不能是關(guān)鍵字(關(guān)鍵字具備特定含義)
* 可以是保留字,但是建議不使用保留字做為變量名,
* 在同一范圍內(nèi)不允許出現(xiàn)同名變量
* Go語言要求變量聲明后至少使用一次(賦值不屬于使用)
8.4 變量聲明及賦值
* 先聲明后賦值(聲明后開辟內(nèi)存,不同類型變量都有不同初值)
//1. 聲明
var 變量名 類型
//2. 賦值
變量名=值
//示例:
var smallming string
smallming = “英文名”
* 聲明并賦值(此方式不建議)
//語法:
var 變量名 類型 = 值
//示例
var smallming string = “英文名”
* 聲明并賦值(省略類型,變量類型取決于值的類型)
//語法:
var 變量名 = 值
//示例:
var smallming = “英文名”
* 短變量(只能在函數(shù)內(nèi)使用)
//語法:
變量名 := 值
//示例:
smallming := “英文名”
8.5 聲明多個變量和賦值
* 先聲明后賦值
func main() {
var a, b, c int
a, b, c = 1, 2, 3
fmt.Println(a, b, c)
}
* 聲明時賦值
func main() {
var a, b, c, d = 1, 2, 3, false
fmt.Println(a, b, c, d)
}
* 聲明并賦值,推薦方式
func main() {
var (
a = 1
b = true
c = “測試”
)
fmt.Println(a, b, c)
}
* 使用短變量給多個變量賦值時,必須要保證至少有個變量是沒有聲明的
func main() {
var (
a = 1
b = true
c = “測試”
)
//短變量操作多個值時只要保證里面至少有一個新變量
b, c, d := false, “smallming”, 3
fmt.Println(a, b, c, d)
}