簡體   English   中英

如何將 int 切片轉換為字符串切片

[英]How to convert a slice of int to a slice of string

好吧,我創建了一個這樣的 int 切片:

list_of_id := []string {1,2,3,4}

我的代碼會檢查我的切片中是否有變量( list_of_id ):

func contains(s [] int, input int) bool {
    for _, v := range s {
        if v == input {
            return true
        }
    }
    return false
}

func main() {
    list_of_id := [] int {1,2,3,4}
    fmt.Println(contains(list_of_id, 1))
}

我想創建一個 function ,我也可以靈活地輸入1"1"

我的意圖是創建一個if else條件,其中 int [] int {1,2,3,4}的切片將轉換為 string [] string {"1","2","3","4"}的切片[] string {"1","2","3","4"}再次檢查。

Anddddd,我不知道該怎么做。 我試圖用谷歌搜索,但我發現的只是將這個[] int {1,2,3,4}轉換為這個"{1,2,3,4}"的解決方案

import "strconv"

func contains(s [] int, input interface{}) bool {
    switch i := input.(type) {
    case int:
        for _, v := range s {
            if v == i {
                return true
            }
        }
    case string:
        for _, v := range s {
            if strconv.Itoa(v) == i {
                return true
            }
        }
    }
    return false
}

https://play.golang.org/p/02J1f77n_aM

package main

import (
    "fmt"
    "strconv"
)

func contains(s []int, input interface{}) bool {
    var c int
    var err error
    switch input.(type) {
    case int:
        c = input.(int)
    case string:
        tmp := input.(string)
        c, err = strconv.Atoi(tmp)
    }

    if err != nil {
        return false
    }

    for _, v := range s {
        if v == c {
            return true
        }
    }
    return false
}

func main() {
    list_of_id := []int{1, 2, 3, 4}
    fmt.Println(contains(list_of_id, 3))
    fmt.Println(contains(list_of_id, 5))
    fmt.Println(contains(list_of_id, "1"))
    fmt.Println(contains(list_of_id, "6"))
}

這里的例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM