go語言-數據類型及類型之間轉換


數據類型分類

一、數據類型-基本數據類型

  1、整數型(int、有符號(int8/1字節、int16/2字節、int32/4字節、int64/8字節)、無符號(uint、uint8、uint16、uint32、uint64))

    int--根據系統位數自動定義,系統是32位,則為int32,系統是64位,則位int64

    uint--根據系統位數自動定義,系統是32位,則為uint32,系統是64位,則位uint64

  2、浮點型:由符號位+指數位+位數位組成,分為float32,float64

    尾數位可能會丟失,造成精度損失,不受操作系統的影響,聲明默認為64位

    有兩種顯示方式:科學計數:534e3等價於534*10的3次方,534e-3等價於534/10的3次方,e不區分大小寫;小數時前面0可不寫

  3、布爾型:只能是true,false,占用一個字節

  4、字符串

    字符:單引號括起來的單個字符,需要格式化輸出,%c,否則輸出字符碼數,

       utf-8英文1個字節,中文3個字節

       存儲:字符-對應碼數-二進制-存儲

          讀取:二進制-對應碼數-字符-讀取

    字符串不可修改,雙引號里有轉義字符會被識別,反引號里不會識別里面的轉移字符

  5、格式化輸出符號

    %c:該值對應的unicode碼值

    %d:表示為十進制顯示

    %T:值的類型

    %q:該值對應的雙引號括起來的go語法字符串字面值

    %f:顯示小數

二、數據類型-派生數據類型 

  指針、數組、結構體、管道、函數、切片、接口、map

數據類型轉換

一、int/float/bool/字符--轉換成str,用fmt.sprintf進行轉換,%q展示雙引號括起來的字符串面值

var(
     num4 = 1
     num5 = 3.44
     char = 'w'
     bl = true
     str1  string
  )
  //int-->>string
  str1 =fmt.Sprintf("%d",num4)
  fmt.Printf("str=%q",str1)
// float-->>string str1 = fmt.Sprintf("%f",num5) fmt.Printf("str=%q",str1)   //str-->>sting str1 = fmt.Sprintf("%c",char) fmt.Printf("str=%q",str)  //bool-->>string str1 = fmt.Sprintf("%t",bl) fmt.Printf("str=%q",str1)

二、str轉int/float/bool,用strconv包的函數進行轉換

  注意事項:

  1、使用strconv包的函數,先導入strconv包,會返回兩個值,第一個是value,第二個是error,一個是報錯,報錯不需要用_忽略掉,%v-按原類型輸出

  2、string類型轉基本數據類型能夠轉成有效數據

  3、如將hello轉成int,不會報錯,直接顯示默認值0

  4、如將hello轉成bool,不會報錯,直接顯示默認值false

  5、ParseBool(變量名),(值,報錯)

  6、ParseInt(變量名,顯示進制(10進制),多少位(int8/16/32/64)),(值-int64,報錯)

  7、ParseFloat(變量名,位數flaot32/64),(值float64,報錯)

 
        
var(
       str2 = "true"
       b1 bool
       str3 = "122333"
       n1 int64
       str4 = "23.33"
       n2 float64
    )
    //string轉bool,%v是展示值的默認格式
    b1,_ = strconv.ParseBool(str2)
    fmt.Printf("b=%v",b1)

    //string轉int
    n1,_ = strconv.ParseInt(str3,10,64)
    fmt.Printf("n1=%v",n1)

    //string轉float
    n2,_ = strconv.ParseFloat(str4,64)
    fmt.Printf("n2=%v",n2)
 }
 
        

 

 
        










 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM