go語言學習筆記二 數據類型,變量,數據類型轉換

數據類型

類型 描述 範圍
uint8 無符號 8 位整型 0 到 255
uint16 無符號 16 位整型 0 到 65535
uint32 無符號 32 位整型 0 到 4294967295
uint64 無符號 64 位整型 0 到 18446744073709551615
int8 有符號 8 位整型 -128 到 127
int16 有符號 16 位整型 -32768 到 32767
int32 有符號 32 位整型 -2147483648 到 2147483647
int64 有符號 64 位整型 -9223372036854775808 到 9223372036854775807
float32 IEEE-754 32位浮點型數
float64 IEEE-754 64位浮點型數
complex64 複數 32 位實數和虛數
complex128 複數 64 位實數和虛數
byte 類似 uint8 -
rune 類似 int32 -
uint 平臺相關 32 或 64 位
int 平臺相關 32 或 64 位
uintptr 無符號整型,用於存放一個指針 -

1.變量的定義

package main

import "fmt"

func main() {
	// 1 定義一個變量不初始化
	var n1 int
	n1 = 1
	// 定義一個變量同時初始化
	var n2 string = "2"
	// 定義變量同時初始化的簡寫
	var n3 = 3
	// 定義多個變量
	var n4, n5 = 4, "5"
	// 只可以在函數中定義變量的方法
	n6 := 6
	fmt.Println(n1, n2, n3, n4, n5, n6)
}

輸出

1 2 3 4 5 6

2.基本數據類型轉換

package main

import (
	"fmt"
	"strconv"
)

func main() {
	// 基本數據類型相互轉換
	var i int = 100
	var n1 float32 = float32(i)
	// 被轉換的是變量存儲的數值,變量本身數據類型並沒有變化(i int, n1 float32)
	fmt.Printf("1.i=%v %T n1=%v %T\n", i, i, n1, n1)

	// 轉換時需要注意類型範圍,如果大範圍轉換爲小範圍則輸出結果按溢出處理
	var num1 int64 = 9999999999
	var num2 int8 = int8(num1)
	fmt.Printf("2.i=%v %T n1=%v %T\n", num1, num1, num2, num2)

	// 基本數據類型轉string 使用fmt包轉換
	var num3 int = 99
	var num4 float32 = 11.11
	var b1 bool = true
	var str string
	str = fmt.Sprint(num3)
	fmt.Printf("3.int轉string: num3=%v %T; str=%v %T\n", num3, num3, str, str)
	str = fmt.Sprint(num4)
	fmt.Printf("4.float32轉string: num3=%v %T; str=%v %T\n", num4, num4, str, str)
	str = fmt.Sprint(b1)
	fmt.Printf("5.bool轉string: num3=%v %T; str=%v %T\n", b1, b1, str, str)

	// 使用strconv包轉換
	str = strconv.FormatInt(int64(num3), 10)
	fmt.Printf("6.int轉string: num3=%v %T; str=%v %T\n", num3, num3, str, str)
	// float64, fmt 輸出格式, prec 精度 float64
	str = strconv.FormatFloat(float64(num4), 'f', 2, 64)
	fmt.Printf("7.float32轉string: num3=%v %T; str=%v %T\n", num4, num4, str, str)
	str = strconv.FormatBool(b1)
	fmt.Printf("8.bool轉string: num3=%v %T; str=%v %T\n", b1, b1, str, str)

	//使用strconv包 string 轉化基本類型
	var str1 string = "10"
	var str2 string = "true"
	var str3 string = "3.1415926"
	// base 進制,bitSize int8,int32,int64
	num6, _ := strconv.ParseInt(str1, 10, 64)
	fmt.Printf("9.str轉換int64:str=%v %T; num6=%v %T\n", str1, str1, num6, num6)
	b2, _ := strconv.ParseBool(str2)
	fmt.Printf("10.str轉換bool:str=%v %T; num6=%v %T\n", str2, str2, b2, b2)
	f1, _ := strconv.ParseFloat(str3, 64)
	fmt.Printf("11.str轉換float:str=%v %T; num6=%v %T\n", str3, str3, f1, f1)
}

輸出

1.i=100 int n1=100 float32
2.i=9999999999 int64 n1=-1 int8
3.int轉string: num3=99 int; str=99 string
4.float32string: num3=11.11 float32; str=11.11 string
5.boolstring: num3=true bool; str=true string
6.int轉string: num3=99 int; str=99 string
7.float32string: num3=11.11 float32; str=11.11 string
8.boolstring: num3=true bool; str=true string
9.str轉換int64:str=10 string; num6=10 int64
10.str轉換bool:str=true string; num6=true bool
11.str轉換float:str=3.1415926 string; num6=3.1415926 float64

go標準庫中文文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章