在Go语言中,any 是interface{} 的别名,表示一个空接口,可以包含任何类型的值。要将 any 类型转换为 string 类型,可以使用多种方法,包括类型断言、类型切换和反射等。下面我将分别介绍这些方法,并提供相应的代码示例。 1. 使用类型断言 类型断言是Go语言中用于检查接口值是否包含特定类型的一种操作。如果接口值确实...
func ToString(any interface{}) string { if v, ok := any.(Stringer); ok { return v.String() } switch v := any.(type) { case int: returnstrconv.Itoa(v) case float: return strconv.Ftoa(v, 'g', -1) } return "???" } // 最后是测试代码 type stringer struct { data string ...
any4 := int64(123) test(any4) any5 := []int{1, 2, 3, 4, 5} test(any5) } functest(valueinterface{}) { switchvalue.(type) { casestring: // 将interface转为string字符串类型 op, ok := value.(string) fmt.Println(op, ok) caseint32: // 将interface转为int32类型 op, ok := ...
2.To String 以string 为,我们可以这样实现。 代码语言:javascript 复制 // ToStringE casts any type to a string type.funcToStringE(i any)(string,error){i=indirectToStringerOrError(i)switchs:=i.(type){casestring:returns,nilcasebool:returnstrconv.FormatBool(s),nilcasefloat64:returnstrconv.Forma...
IndexAny函数从string [left]中的chars [right]返回任何Unicode代码点的第一个实例的索引。它仅通过匹配字符串中的特定文本即可工作。如果找到,则返回以0开头的特定位置。如果找不到,则返回-1。 9.IndexByte strings.IndexByte(s string, c byte) int ...
string(b) 变量b 的类型为 []byte ,该操作是将 []byte 类型转为 string。 增加了一个“内容为空”的错误判断,该错误也可以直接保存到变量中返回。 var ErrEmpty = errors.New("内容为空") func LoadConfig() (string, error) { // ... return "", ErrEmpty // ... } 现在假设 "config.json...
如果为多种不同类型切片互转都实现各自的转换函数,无疑是低效繁琐的。 2.反射 实际上,利用 Golang 反射,可以为目标类型切片的转换只写一个函数。比如,可以接收任意类型切片,将其转换为 []string。 代码语言:javascript 复制 // ToStrSliceE converts an any type value to a []string with returned error....
func randStr(n int) string { b := make([]rune, n) for i := range b { b[i] = letters[rand.Intn(len(letters))] } return string(b) } func TestApproach1(t *testing.T) { rand.Seed(time.Now().UnixNano()) fmt.Println(randStr(10)) ...
IndexAny // 字符串chars中的任一utf-8码值在str中第一次出现的位置,如果不存在或者chars为空字符串则返回-1。 func IndexAny(str, chars string) int func demo() { var str = "hello world" fmt.Println(strings.IndexAny(str, "")) // -1 fmt.Println(strings.IndexAny(str, "hd")) // 0 ...