Golang Tip:判断两个类型之间是否能转换

主要用到Go语言的反射(reflect)reflect.Type接口有一个方法ConvertibleTo就是判断一个类型是否能转换为另一个类型。

package main

import (
    "fmt"
    "reflect"
)

type Address [20]byte

func main() {
    fmt.Println("Hello, playground")
    
    //v := make([]byte,20)
    var v [20]byte
    vtype := reflect.ValueOf(v).Type()
    fmt.Printf("type slice:%v\n", vtype)
    
    var addr Address
    atype := reflect.ValueOf(addr).Type()
    fmt.Printf("type address:%v\n", atype)
    
    fmt.Println("convertible:", vtype.ConvertibleTo(atype))
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 序言 第一次接触反射技术是在很多年前学习设计模式的时候,那时在优化Java版简单工厂的实现,当读取配置信息中的的类...
    _张晓龙_阅读 10,104评论 2 21
  • 第一次知道反射的时候还是许多年前在学校里玩 C# 的时候。那时总是弄不清楚这个复杂的玩意能有什么实际用途……然后发...
    勿以浮沙筑高台阅读 4,786评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 整体Retrofit内容如下: 1、Retrofit解析1之前哨站——理解RESTful 2、Retrofit解析...
    隔壁老李头阅读 10,096评论 2 12
  • 今天孩子学校班主任老师给我发微信,说孩子这周数学单元测试进步非常大,看到这个消息心中的喜悦无法形容,赶紧电话...
    xj兰草阅读 1,228评论 2 6