golang 将任何Go接口{}转换为字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 将任何Go接口{}转换为字符串相关的知识,希望对你有一定的参考价值。

package stringify
import(
  "fmt"
  "reflect"
)
func Stringify(v reflect.Value) string {
	var str string
	switch v.Kind() {
	case reflect.Func:
	case reflect.Map:
	case reflect.Slice:
		return ""
	case reflect.Array:
		for i := 0; i < v.Len(); i++ {
			if str == "" {
				str = Stringify(v.Index(i))
			} else {
				str = fmt.Sprintf("%s, %s", str, Stringify(v.Index(i)))
			}
		}
	case reflect.Struct:
		for i := 0; i < v.NumField(); i++ {
			if str == "" {
				str = fmt.Sprintf("%s:%s", v.Type().Field(i).Name, Stringify(v.Field(i)))
			} else {
				str = fmt.Sprintf("%s, %s:%s", str, v.Type().Field(i).Name, Stringify(v.Field(i)))
			}
		}
	}
	return str
}

Golang✔️走进 Go 语言✔️ 第五课 类型转换

【Golang】✔️走进 Go 语言✔️ 第五课 类型转换

概述

Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 5 课)

数据类型转换

数据类型转换可以帮助我们将一种数据类型的变量转换为另外一个种类型的变量.

格式:

type_name(expression)

浮点转整数

浮点转整数是从高精度向低精度转换, 小数点后面会被舍弃.

例子:

package main

import "fmt"

func main() {

	// 定义float
	var num_float = 1.2

	// 类型转换
	var num_int = int(num_float)

	// 调试输出
	fmt.Println(num_float)
	fmt.Println(num_int)

}

输出结果:

1.2
1

字符串转整数

例子:

package main

import (
	"fmt"
	"reflect"
	"strconv"
)

func main() {

	// 定义string
	var str = "666"

	// 类型转换
	var num, _ = strconv.Atoi(str)

	// 调试输出
	fmt.Println(str, reflect.TypeOf(str))
	fmt.Println(num, reflect.TypeOf(num))

}

输出结果:

666 string
666 int

整数转字符串

例子:

package main

import (
	"fmt"
	"reflect"
	"strconv"
)

func main() {

	// 定义int
	var num = 999

	// 类型转换
	var str = strconv.Itoa(num)

	// 调试输出
	fmt.Println(num, reflect.TypeOf(num))
	fmt.Println(str, reflect.TypeOf(str))
	
}

输出结果:

999 int
999 string

以上是关于golang 将任何Go接口{}转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

Golang中函数结构体,将函数转换为接口

Golang内部构件,第2部分:深入Go编译器

Golang✔️走进 Go 语言✔️ 第五课 类型转换

Golang✔️走进 Go 语言✔️ 第五课 类型转换

go如何把string类型转换成func

golang Marshal / Unmarshal将不同的JSON对象转换为Go结构