【編程基礎(chǔ)Ep4】《Go語言趣學(xué)指南》學(xué)習(xí)筆記P15:格式化輸出、變量聲明、隨機(jī)數(shù)

(合計(jì)898字,用時(shí)30min——)
第1單元 命令式編程
第2章 被美化的計(jì)算器
2.2?格式化輸出
fmt包里的Printf函數(shù):
特點(diǎn):對(duì)輸出擁有更大的控制權(quán);
參數(shù):
第一個(gè)參數(shù):文本;
第二個(gè)參數(shù):表達(dá)式——格式化變量%v則會(huì)在之后被替換成表達(dá)式的值——還有%v外的其他格式化變量;
對(duì)比:
Println:自動(dòng)將輸出的內(nèi)容推進(jìn)至下一行;
Printf和Print:不會(huì)這么做,用換行符\n來將輸出內(nèi)容推至下一行;
其他用法:
如果用戶指定了多個(gè)格式化變量,那么Printf函數(shù)將按順序把它們替換成相應(yīng)的值,文本里有幾個(gè)格式化變量,后面跟幾個(gè)表達(dá)式;
除可以在句子的任何位置將格式化變量替換成指定的值之外,還能夠調(diào)整文本的對(duì)應(yīng)位置——
%4v:將文本的寬度填充至4個(gè)字符,空格將被填充至文本左邊;
%-15v:將文本的寬度填充至15個(gè)字符,空格將被填充至文本右邊。
2.3 常量與變量
概念:
關(guān)鍵字:
const:聲明常量;
var:聲明變量;
特點(diǎn):
常量:不能被修改,重新賦值會(huì)報(bào)錯(cuò)“無法對(duì)xxx進(jìn)行賦值”;
變量:必須先聲明后使用,如果尚未使用var關(guān)鍵字對(duì)變量進(jìn)行聲明,那么嘗試向它賦值將導(dǎo)致Go報(bào)告錯(cuò)誤——首次出現(xiàn)某變量必用var。
2.4 走捷徑
2.4.1 一次聲明多個(gè)變量
聲明方式:
分別聲明:聲明幾個(gè)變量var幾次;
一次聲明一組變量:var后用大括號(hào)包含兩個(gè)變量;
同一行聲明多個(gè)變量:變量名用,隔開。
2.4.2 增量并賦值操作符
例子:
weight*=0.3:weight=weight*0.3;
age+=1:age=age+1:age++;
注意:Go并不支持++count這種見諸C和Java等語言中的前置增量操作。
2.5 數(shù)字游戲
rand包生成偽隨機(jī)數(shù):
偽隨機(jī)數(shù):并非真正隨機(jī),只是看上去或多或少像是隨機(jī)的而已;
導(dǎo)包:"math/rand";
代碼:rand.Intn(10)+1——返回1~10之間的一個(gè)隨機(jī)數(shù);
“差一錯(cuò)誤(off-by-one error)”:如果我們?cè)趯懘a的時(shí)候忘記對(duì)偽隨機(jī)數(shù)執(zhí)行加一操作,那么程序?qū)⒎祷匾粋€(gè)0~9的數(shù)字;
注意:雖然rand包的導(dǎo)入路徑為math/rand,但是我們?cè)谡{(diào)用Intn函數(shù)的時(shí)候只需要使用包名rand作為前綴即可,不需要使用整個(gè)導(dǎo)入路徑。