久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Go 語言的強制類型轉換

Go 語言是一種強類型語言,而且沒有隱式轉換。也就是說運算符左右的變量類型必須一致,若不一致就會報錯。為了使用戶更加的容易使用,所以 Go 語言提供了各個類型之間強制類型轉換的內置方法。

 

1. 整型和浮點型互相轉換

整型浮點型變量之間的相互轉換相對容易,只需使用強制類型轉換標志?type(variable)就好了。需要注意的是,當高精度低精度類型轉換的時候,會失真。即浮點型向整型轉換的時候會失去其小數部分。在實際開發的過程中,我們一般要避免這兩個類型的互相轉換,在無法避免的場景,比如說計算浮點數和整數的和之類的情況中。需要秉持不失真原則,將低精度向高精度轉換之后進行計算。

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import "fmt"
  • 4
  • 5? func main(){
  • 6? ? ? ? var a int = 10 // 聲明一個整形變量 a 并給 a 賦值為 10
  • 7? ? ? ? var b float32 = 3.14 // 聲明一個浮點型變量 b 并給 b 賦值為 3.14
  • 8
  • 9? ? ? ? fmt.Printf("整型轉換為浮點型:%fn",float32(a)) // 將變量 a 強制轉換為浮點型變量并打印結果
  • 10? ? ? fmt.Printf("浮點型轉換為整型:%dn",int(b)) //浮點型轉為整型會失真
  • 11 }

執行結果如下:

圖片描述
整型和浮點型互相轉換實例輸出結果

 

2. 整形和字符串互相轉換

整型和字符串類型的變量互相轉換,需要依靠 Go 語言提供的轉換包strconv。字符串轉整型需要使用這個包的Atoi(string)方法,整型轉字符串則是Itoa(int)。這種轉換用得最多的就是給一些對象進行編號。比如需要給張三編號為NO.1,你可能需要將1轉換為字符串之后與NO.進行拼接。

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? "fmt"
  • 5? ? ? ? "strconv" // 在程序中導入 strconv 轉環包
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? var a int = 10 // 定義一個整形變量并賦值為 10
  • 10? ? ? var b string = "10" // 定義一個字符串類型變量并賦值為 "10"
  • 11
  • 12? ? ? fmt.Printf("整型轉換為字符串:%sn", strconv.Itoa(a))
  • 13? ? ? tmp, _ := strconv.Atoi(b)
  • 14? ? ? fmt.Printf("字符串轉換為整型:%dn", tmp)
  • 15? }

執行結果如下:

圖片描述
整形和字符串互相轉換實例輸出結果

 

3. 浮點型和字符串互相轉換

浮點型和字符串的互相轉換沒有直接封裝好的轉換接口了,需要調用strconvs包中稍微底層一點的接口。浮點型轉字符串使用FormatFloat(float64,byte,int,int)方法,字符串轉換為浮點型則使用ParseFloat(...)方法。因為浮點數在存儲過程中容易因為精度問題而存在誤差,所以有時候會將浮點數轉換為字符串進行存儲。

代碼示例:

代碼塊
  • 1? package main
  • 2? import (
  • 3? ? ? ? "fmt"
  • 4? ? ? ? "strconv"
  • 5? )
  • 6
  • 7
  • 8? func main() {
  • 9? ? ? ? ? f1 := 0.123456789
  • 10? ? ? ? s1 := strconv.FormatFloat(f1, 'f', -1, 32)
  • 11? ? ? ? s2 := strconv.FormatFloat(f1, 'f', -1, 64)
  • 12? ? ? ? s3 := "0.123456789"
  • 13? ? ? ? f2, _ := strconv.ParseFloat(s3, 64)
  • 14? ? ? ? f3, _ := strconv.ParseFloat(s3, 32)
  • 15? ? ? ? fmt.Println("將浮點數轉換為float32轉換為string:", s2)
  • 16? ? ? ? fmt.Println("將float64轉換為string:", s1)
  • 17? ? ? ? fmt.Println("將string轉換為float64:", f2)
  • 18? ? ? ? fmt.Println("將string轉換為float32再強制轉換為float64:", f3)
  • 19? }

執行結果:

圖片描述
浮點型和字符串互相轉換實例輸出結果

 

4. 小結

本文主要學習了 Go 語言中各個數據類型的互相強制轉換。主要都是依賴與?strconvs?這個第三方包。這個包中還提供了其它很多的轉換方法,大家有機會可以更深入地去了解一下。在做類型轉換的時候要注意:浮點型在轉為整型時會失真。

文章來源于網絡,侵刪!

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 安平县| 凉山| 武功县| 顺平县| 西安市| 舞钢市| 赤峰市| 微博| 叙永县| 屯昌县| 孟州市| 黑河市| 潜山县| 许昌县| 介休市| 屯昌县| 吴江市| 千阳县| 永泰县| 绥德县| 云霄县| 天镇县| 连州市| 阳东县| 双牌县| 荆州市| 炎陵县| 旌德县| 锦州市| 涟源市| 沈丘县| 句容市| 静海县| 佛坪县| 十堰市| 门头沟区| 平度市| 怀集县| 彰化县| 中阳县| 济阳县|