MST

星途 面试题库

面试题:Go语言中不同类型切片之间转换的详细过程

在Go语言中,给定一个int类型的切片 `[]int`,请详细描述如何将其转换为 `[]string` 类型的切片,并编写完整的代码示例,同时说明在转换过程中可能会遇到的错误及如何处理。
31.4万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 转换方法
    • 使用 strconv.Itoa 函数将 int 类型的值转换为 string 类型。然后遍历 int 类型的切片,将每个元素转换后放入新的 string 类型切片中。
  2. 代码示例
package main

import (
    "fmt"
    "strconv"
)

func intSliceToStringSlice(intSlice []int) []string {
    stringSlice := make([]string, len(intSlice))
    for i, num := range intSlice {
        stringSlice[i] = strconv.Itoa(num)
    }
    return stringSlice
}
  1. 可能遇到的错误及处理
    • strconv.Itoa 函数在正常情况下不会返回错误,因为它总是能将 int 类型的值转换为 string 类型。但是,如果在实际应用中,int 类型的值是通过其他可能出错的方式获取的(例如从外部输入解析得到 int 值),在转换为 string 前应该先处理获取 int 值时可能出现的错误。例如,如果使用 strconv.Atoi 从字符串解析 int,解析过程可能会出错,可以这样处理:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "123a"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("解析int出错:", err)
        return
    }
    strResult := strconv.Itoa(num)
    fmt.Println(strResult)
}

在这个例子中,先处理 strconv.Atoi 可能出现的错误,避免后续 strconv.Itoa 因为无效的 int 值而导致逻辑问题。

调用示例:

func main() {
    intSlice := []int{1, 2, 3}
    result := intSliceToStringSlice(intSlice)
    fmt.Println(result)
}

main 函数中,先定义了 int 类型的切片 intSlice,然后调用 intSliceToStringSlice 函数进行转换,并打印结果。