變量之間的轉(zhuǎn)換

一、字符串連接(同類型)

若變量均為 string 類型,直接使用 + 運算符或 fmt.Sprintf:

s1 := "Hello"
s2 := "World"
result := s1 + " " + s2  // "Hello World"
result2 := fmt.Sprintf("%s %s", s1, s2) // 格式化拼接

二、不同類型轉(zhuǎn)換

1. 數(shù)值類型互轉(zhuǎn)

需顯式類型轉(zhuǎn)換(Go 不允許隱式轉(zhuǎn)換):

var i int = 42
var f float64 = float64(i)  // int → float64
var u uint = uint(f)        // float64 → uint(可能丟失精度)

2. 字符串 ? 數(shù)值

需使用 strconv 包:

// int → string
s := strconv.Itoa(123)  // "123"

// string → int
num, err := strconv.Atoi("456")  // 需處理err

// float → string
s := strconv.FormatFloat(3.14, 'f', 2, 64)  // "3.14"

3. 其他類型 → 字符串

推薦 fmt.Sprintf 格式化:

b := true
s := fmt.Sprintf("%v", b)  // "true"

三、接口類型處理

若變量是 interface{} 類型,需通過 類型斷言 或 類型轉(zhuǎn)換:

var val interface{} = 100

// 類型斷言
if num, ok := val.(int); ok {
    fmt.Println(num + 200) // 300
}

// 類型轉(zhuǎn)換(需已知類型)
str := val.(int)  // 直接斷言為int

四、注意事項

類型兼容性:非字符串類型無法直接通過 + 連接

// 錯誤示例
age := 25
str := "Age: " + age // 編譯錯誤(需將age轉(zhuǎn)為string)
格式化拼接:混合類型時建議用 fmt.Sprintf
name := "Alice"
score := 95.5
output := fmt.Sprintf("%s的成績是%.1f分", name, score)
性能優(yōu)化:大量字符串拼接建議用 strings.Builder


var builder strings.Builder
builder.WriteString("Hello")
builder.WriteString(" ")
builder.WriteString("Go")
result := builder.String() // "Hello Go"

五、示例場景

// 混合類型輸出
func main() {
    age := 30
    height := 175.5
    info := fmt.Sprintf("年齡: %d歲, 身高: %.1fcm", age, height)
    fmt.Println(info) // 年齡: 30歲, 身高: 175.5cm
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 值----字符串 1 .使用加號:數(shù)字,布爾,數(shù)組,函數(shù),預(yù)定義對象,對象直接量,字符串連接優(yōu)先級大于求和運算。以...
    skoll閱讀 302評論 0 0
  • 1.常量 常量使用關(guān)鍵字const定義,用于存儲不會改變的數(shù)據(jù)。 存儲在常量中的數(shù)據(jù)類型只可以是布爾型、數(shù)字型(整...
    陸星光閱讀 367評論 0 0
  • 文章圖片上傳不正常,如需文檔,可聯(lián)系微信:1017429387 目錄 1 安裝... 4 1.1 配置探針... ...
    Mrhappy_a7eb閱讀 6,922評論 0 5
  • 變量 定義Golang變量的三種形式 先定義再賦值 第一種 var i int (var +變量名+變量類型) 第...
    Jason__Kwok閱讀 186評論 0 1
  • 接口 接口類型是對其他類型行為的概括與抽象。通過使用接口,我們可以寫出更加靈活和通用的函數(shù),這些函數(shù)不用綁定在一個...
    WongBynn閱讀 760評論 0 0

友情鏈接更多精彩內(nèi)容