Go基礎程式設計:格式化輸出、型別轉換、類型別名
阿新 • • 發佈:2019-01-01
使用fmt包來格式化字串
fmt.Printf()格式字串:
列印格式 | 含義 |
---|---|
%% | 一個%字面量 |
%b | 一個二進位制整數值(基數為2),或者是一個(高階的)用科學計數法表示的指數為2的浮點數 |
%c | 字元型。可以把輸入的數字按照ASCII碼相應轉換為對應的字元 |
%d | 一個十進位制數值(基數為10) |
%e | 以科學記數法e表示的浮點數或者複數值 |
%E | 以科學記數法E表示的浮點數或者複數值 |
%f | 以標準記數法表示的浮點數或者複數值 |
%g | 以%e或者%f表示的浮點數或者複數,任何一個都以最為緊湊的方式輸出 |
%G | 以%E或者%f表示的浮點數或者複數,任何一個都以最為緊湊的方式輸出 |
%o | 一個以八進位制表示的數字(基數為8) |
%p | 以十六進位制(基數為16)表示的一個值的地址,字首為0x,字母使用小寫的a-f表示 |
%q | 使用Go語法以及必須時使用轉義,以雙引號括起來的字串或者位元組切片[]byte,或者是以單引號括起來的數字 |
%s | 字串。輸出字串中的字元直至字串中的空字元(字串以’\0‘結尾,這個’\0’即空字元) |
%t | 以true或者false輸出的布林值 |
%T | 使用Go語法輸出的值的型別 |
%U | 一個用Unicode表示法表示的整型碼點,預設值為4個數字字元 |
%v | 使用預設格式輸出的內建或者自定義型別的值,或者是使用其型別的String()方式輸出的自定義值,如果該方法存在的話 |
%x | 以十六進位制表示的整型值(基數為十六),數字a-f使用小寫表示 |
%X | 以十六進位制表示的整型值(基數為十六),數字A-F使用小寫表示 |
//整型
a := 15
fmt.Printf("a = %b\n", a) //a = 1111
fmt.Printf("%%\n") //只輸出一個%
//字元
ch := 'a'
fmt.Printf("ch = %c, %c\n" , ch, 97) //a, a
//浮點型
f := 3.14
fmt.Printf("f = %f, %g\n", f, f) //f = 3.140000, 3.14
fmt.Printf("f type = %T\n", f) //f type = float64
//複數型別
v := complex(3.2, 12)
fmt.Printf("v = %f, %g\n", v, v) //v = (3.200000+12.000000i), (3.2+12i)
fmt.Printf("v type = %T\n", v) //v type = complex128
//布林型別
fmt.Printf("%t, %t\n", true, false) //true, false
//字串
str := "hello go"
fmt.Printf("str = %s\n", str) //str = hello go
型別轉換
Go語言中不允許隱式轉換,所有型別轉換必須顯式宣告,而且轉換隻能發生在兩種相互相容的型別之間。
var ch byte = 97
//var a int = ch //err, cannot use ch (type byte) as type int in assignment
var a int = int(ch)
類型別名
type bigint int64 //int64型別改名為bigint
var x bigint = 100
type (
myint int //int改名為myint
mystr string //string改名為mystr
)