go语言变量声明定义 go语言函数定义

如何利用golang 反射值来定义一个变量

之前写java的时候就已经知道了有反射这个概念,看过一遍文戚橡章专门介绍了一下java的反射机制,不过现在忘记了。

创新互联专注于岗巴企业网站建设,响应式网站,商城建设。岗巴网站建设公司,为岗巴等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

今天写一个通用函数的时候要对传入的参数经行类型判断,还要定义与其像同类型的变量经行取址运算,baidu, google,golang reflect包也看了好久,也没看到将返回值来定义个变量的办法。最后在一篇博客中旁滑得到灵感—–点击可以看看。

这篇文章中没有告诉怎么将反射值去定义一个变量,但看完之后思考一下,既然要返回一个类型,但是类型又是不确定的,若存在这样一个返回变量的函数,则其返回类型必是Interface,在官网文档里找返回类型是Interface的函数,就是它了,它是Value类型的一个函数,所以就不能使用reflect.TypeOf(i interface{})来运仔腊操作了,就只能用reflect.ValueOf().于是慢慢结合上诉博客加文档,get~

package main

import (

"reflect"

"fmt"

)

func main() {

v2 := "tangs"

fmt.Println("v2's value is : ", v2, ", type is : ", reflect.TypeOf(v2))

ty := reflect.ValueOf(v2).Elem()

s := ty.Interface()

s = "tangs"

fmt.Println("s's value is : ", s, ", type is : " ,reflect.TypeOf(s))

}


分享文章:go语言变量声明定义 go语言函数定义
网页网址:http://pwwzsj.com/article/dsppids.html