第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Go 入門教程

Go 語言基礎(chǔ)教程
01 Go語言簡介 02 Go 在 Windows 上的安裝及配置 03 Go 在 Linux 上的安裝與配置 04 Go 在 MacOS 上的安裝及配置 05 Git 的下載和安裝 06 VSCode 編輯器安裝和配置 07 Go 的變量聲明 08 Go 的變量賦值 09 Go 語言的 := 10 Go 的整型(int) 11 Go 的無符號(hào)整型(uint) 12 Go 的浮點(diǎn)型(float) 13 Go 的字符類型 14 Go 的布爾型(bool) 15 Go 的強(qiáng)制類型轉(zhuǎn)換 16 Go 語言的常量 17 Go 語言中代替枚舉的辦法 18 Go 語言中的運(yùn)算符 19 Go 語言的分支語句 20 Go 語言的循環(huán)語句 21 Go 語言的通道 22 Go 語言中的函數(shù) 23 Go 語言函數(shù)中的 defer 24 Go 語言中的閉包 25 Go 語言的指針 26 Go 語言中的數(shù)組 27 Go 語言中的切片 28 Go 語言中的 Map 29 Go 語言中的 range 30 Go 語言拓展以有類型 31 Go 語言中的結(jié)構(gòu)體和"面向?qū)ο?quot; 32 Go 語言中的接口 33 Go 語言類型的內(nèi)嵌 34 Go 語言中的 nil 35 Go 語言函數(shù)式編程 36 Go 語言中的錯(cuò)誤和異常處理 37 Go 語言的并發(fā) 38 Go 語言中的包 39 Go 語言 go mod 包依賴管理工具 40 Go 語言的文件操作 41 Go 語言中的系統(tǒng)包 42 Go 語言的 strings 系統(tǒng)包的使用 43 Go 語言中的變參 44 Go 語言中的反射 45 Go 語言性能測(cè)試 46 使用 Go 語言搭建簡易登錄功能 47 使用 gin 包優(yōu)化登錄功能
首頁 慕課教程 Go 入門教程 Go 入門教程 15 Go 的強(qiáng)制類型轉(zhuǎn)換

Go 語言的強(qiáng)制類型轉(zhuǎn)換

Go 語言是一種強(qiáng)類型語言,而且沒有隱式轉(zhuǎn)換。也就是說運(yùn)算符左右的變量類型必須一致,若不一致就會(huì)報(bào)錯(cuò)。為了使用戶更加的容易使用,所以 Go 語言提供了各個(gè)類型之間強(qiáng)制類型轉(zhuǎn)換的內(nèi)置方法。

1. 整型和浮點(diǎn)型互相轉(zhuǎn)換

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

代碼示例:

package main

import "fmt"

func main(){
    var a int = 10 // 聲明一個(gè)整形變量 a 并給 a 賦值為 10
    var b float32 = 3.14 // 聲明一個(gè)浮點(diǎn)型變量 b 并給 b 賦值為 3.14
 
    fmt.Printf("整型轉(zhuǎn)換為浮點(diǎn)型:%f\n",float32(a)) // 將變量 a 強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型變量并打印結(jié)果
    fmt.Printf("浮點(diǎn)型轉(zhuǎn)換為整型:%d\n",int(b)) //浮點(diǎn)型轉(zhuǎn)為整型會(huì)失真
}

執(zhí)行結(jié)果如下:

圖片描述

整型和浮點(diǎn)型互相轉(zhuǎn)換實(shí)例輸出結(jié)果

2. 整形和字符串互相轉(zhuǎn)換

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

代碼示例:

package main

import (
    "fmt"
    "strconv" // 在程序中導(dǎo)入 strconv 轉(zhuǎn)環(huán)包
)

func main() {
    var a int = 10 // 定義一個(gè)整形變量并賦值為 10
    var b string = "10" // 定義一個(gè)字符串類型變量并賦值為 "10"

    fmt.Printf("整型轉(zhuǎn)換為字符串:%s\n", strconv.Itoa(a))
    tmp, _ := strconv.Atoi(b)
    fmt.Printf("字符串轉(zhuǎn)換為整型:%d\n", tmp)
}

執(zhí)行結(jié)果如下:

圖片描述

整形和字符串互相轉(zhuǎn)換實(shí)例輸出結(jié)果

3. 浮點(diǎn)型和字符串互相轉(zhuǎn)換

浮點(diǎn)型和字符串的互相轉(zhuǎn)換沒有直接封裝好的轉(zhuǎn)換接口了,需要調(diào)用strconvs包中稍微底層一點(diǎn)的接口。浮點(diǎn)型轉(zhuǎn)字符串使用FormatFloat(float64,byte,int,int)方法,字符串轉(zhuǎn)換為浮點(diǎn)型則使用ParseFloat(...)方法。因?yàn)楦↑c(diǎn)數(shù)在存儲(chǔ)過程中容易因?yàn)?strong>精度問題而存在誤差,所以有時(shí)候會(huì)將浮點(diǎn)數(shù)轉(zhuǎn)換為字符串進(jìn)行存儲(chǔ)。

代碼示例:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    f1 := 0.123456789
    s1 := strconv.FormatFloat(f1, 'f', -1, 32)
    s2 := strconv.FormatFloat(f1, 'f', -1, 64)
    s3 := "0.123456789"
    f2, _ := strconv.ParseFloat(s3, 64)
    f3, _ := strconv.ParseFloat(s3, 32)
    fmt.Println("將浮點(diǎn)數(shù)轉(zhuǎn)換為float32轉(zhuǎn)換為string:", s2)
    fmt.Println("將float64轉(zhuǎn)換為string:", s1)
    fmt.Println("將string轉(zhuǎn)換為float64:", f2)
    fmt.Println("將string轉(zhuǎn)換為float32再強(qiáng)制轉(zhuǎn)換為float64:", f3)
}

執(zhí)行結(jié)果:

圖片描述

浮點(diǎn)型和字符串互相轉(zhuǎn)換實(shí)例輸出結(jié)果

4. 小結(jié)

本文主要學(xué)習(xí)了 Go 語言中各個(gè)數(shù)據(jù)類型的互相強(qiáng)制轉(zhuǎn)換。主要都是依賴與 strconvs 這個(gè)第三方包。這個(gè)包中還提供了其它很多的轉(zhuǎn)換方法,大家有機(jī)會(huì)可以更深入地去了解一下。在做類型轉(zhuǎn)換的時(shí)候要注意:浮點(diǎn)型在轉(zhuǎn)為整型時(shí)會(huì)失真。