[英]How convert multidimensional slice []interface{} to slice []string?
[英]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
}
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.