go 語言中預設的型別識別
下面x,y是什麼型別
var x = 23.2
var y = 23
package main
import (
"fmt"
"unsafe"
)
func main() {
var x = 23.2
fmt.Println(x)
fmt.Println(unsafe.Sizeof(x))
t(x)
var y = 23
fmt.Println(y)
fmt.Println(unsafe.Sizeof(y))
t(y)
}
func t(i interface{}) { //函式t有一個引數i
switch i.(type) { //多選語句switch
case string:
//是字元時做的事情
fmt.Println("this is a string")
break
case int:
//是整數時做的事情
fmt.Println("this is a int")
break
case bool:
fmt.Println("this is a bool")
break
case int32:
fmt.Println("this is a int32")
break
case float32:
fmt.Println("this is a float32")
break
case float64:
fmt.Println("this is a float64")
break
default:
fmt.Println("this is a default")
}
return
}
結果是這樣的
顯然:如果不宣告型別的話,預設的型別都是佔用64位(如果機器是32位的話,預設是32位)
整形預設是 64位的int, 浮點型預設是64位的float64
記憶方法;
1.位數,機器的cpu位數 64位機器佔8位元組,那麼預設就是8位元組的型別
2.int (機器位數有關)
3.float+(32/64)機器位數有關
4.int + (8/16/32/64) 不參與預設設定
5int32 或者rune 參與 字元的預設
case中同時出現int32 和 rune會報錯,也就是說他兩是一樣的
相關文章
- c語言中預設引數的兩種型別C語言型別
- Python 語言中的 “鴨子型別”Python型別
- C語言中的資料型別C語言資料型別
- go資料型別識別Go資料型別
- Go語言的識別符號、關鍵字、字面量、型別Go符號型別
- c語言中陣列的三種型別C語言陣列型別
- 型別預設和any型別型別
- dart系列之:dart語言中的內建型別Dart型別
- go語言資料型別-基礎型別Go資料型別
- GO語言中string和[]byte的區別及轉換Go
- 認識 Go 語言中的陣列Go陣列
- python語言中基本資料型別有哪些?Python資料型別
- c++語言中類的私有型別或保護型別成員變數C++型別變數
- 對C語言中無符號型別的建議C語言符號型別
- Go語言之旅:基本型別Go型別
- go語言——資料型別Go資料型別
- 聊聊 Go 語言中的 JSON 序列化與 js 前端互動型別失真問題GoJSON前端型別
- GO語言————8.4 map 型別的切片Go型別
- C語言中幾種報錯型別的解決方案C語言型別
- 二進位制安全_C語言中資料型別C語言資料型別
- go語言中變數前加 *和& 有啥區別啊Go變數
- C語言中的複雜資料型別,你掌握了哪些?C語言資料型別
- go語言簡單入門--常識和資料型別Go資料型別
- C語言中識別符號的作用域、名稱空間、連結屬性、生命週期、儲存型別C語言符號型別
- c語言中的資料型別的自動轉換原則C語言資料型別
- 《Go 語言程式設計》讀書筆記 (一)基礎型別和複合型別Go程式設計筆記型別
- Go 的引用型別Go型別
- 【R語言入門】R語言中的變數與基本資料型別R語言變數資料型別
- Go 語言中的方法Go
- Go 語言型別系統詳解Go型別
- go語言資料型別轉換Go資料型別
- go語言中的封裝,繼承和多型Go封裝繼承多型
- go語言中make和new有什麼作用以及區別?Go
- go 如何擴充系統型別或者別人的型別Go型別
- 淺談程式語言型別的強型別,弱型別,動態型別,靜態型別型別
- Go 基本型別Go型別
- 語言型別介紹及其Python的語言型別型別Python
- GO語言————4.5 基本型別和運算子Go型別