返回顶部
首页 > 资讯 > 精选 >获取基于原始类型的类型的reflect.Kind
  • 383
分享到

获取基于原始类型的类型的reflect.Kind

overflow 2024-02-09 16:02:11 383人浏览 薄情痞子
摘要

在PHP编程中,获取基于原始类型的类型的reflect.Kind是一项重要的技能。reflect.Kind是php提供的反射类库中的一个属性,它可以用来确定一个变量的数据类型。通过使用

PHP编程中,获取基于原始类型的类型的reflect.Kind是一项重要的技能。reflect.Kind是php提供的反射类库中的一个属性,它可以用来确定一个变量的数据类型。通过使用reflect.Kind,我们可以轻松地获取到变量的类型,进而进行相应的操作和处理。对于PHP开发者来说,掌握这一技能将有助于更好地理解和运用反射机制,提升代码的可读性和灵活性。在本文中,php小编百草将为大家详细介绍如何获取基于原始类型的类型的reflect.Kind,并分享一些实用的示例和技巧,帮助读者更好地掌握这一知识点。

问题内容

我想将reflect.kind作为实现接口的类型的reflect.interface,但其实现基于原始类型:type id string

对此问题的另一种答案可能是如何在调用 kind() 时获取返回reflect.interfaces 的任何类型的reflect.type。

这是 Go playground 上的完整示例:

type ID interface {
    myid()
}

type id string

func (id) myid() {}

func main() {
    id := ID(id("test"))
    
    fmt.Println(id)
    fmt.Println(reflect.TypeOf(id))
    
    // How to get the kind to return "reflect.Interface" from the var "id"?
    fmt.Println(reflect.TypeOf(id).Kind())
}

解决方法

reflect.typeof() (和 reflect.valueof()) 需要一个 接口{}。基本上,无论您传递给 reflect.typeof() 的值是什么,如果它还不是接口值,它将隐式包装在 interface{} 中。如果传递的值已经是接口值,则其中存储的具体值将作为 interface{} 传递。

为了避免这种“重新打包”,这是指向接口的指针有意义的罕见情况之一,事实上您在这里无法避免它。您必须传递一个指向接口值的指针。

因此,如果您将指针传递给接口,则该指针将被包装在 interface{} 值中。您可以使用 type.elem() 来获取“指向类型”的类型描述符:即指针类型的元素类型,这将是您要查找的接口类型的类型描述符。

示例:

id := id(id("test"))

fmt.println(id)
t := reflect.typeof(&id).elem()
fmt.println(t)

fmt.println(t.kind())

哪些输出(在 go playground 上尝试一下):

test
main.ID
interface

查看相关问题:go中reflect.valueof()和value.elem()有什么区别?

以上就是获取基于原始类型的类型的reflect.Kind的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 获取基于原始类型的类型的reflect.Kind

本文链接: https://lsjlt.com/news/562653.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 获取基于原始类型的类型的reflect.Kind
    在PHP编程中,获取基于原始类型的类型的reflect.Kind是一项重要的技能。reflect.Kind是PHP提供的反射类库中的一个属性,它可以用来确定一个变量的数据类型。通过使用...
    99+
    2024-02-09
    overflow
  • 获取不带类型参数的泛型结构的类型名称
    php小编草莓在这篇文章中将向大家介绍如何获取不带类型参数的泛型结构的类型名称。泛型是一种强大的编程技术,可以在不指定具体类型的情况下编写通用的代码。然而,有时我们可能需要获取泛型结构...
    99+
    2024-02-13
    typedef overflow
  • Java获取泛型类型信息
    根据使用泛型位置的不同可以分为:声明侧泛型、使用侧泛型。 声明侧的泛型信息被记录在Class文件的Constant pool中以Signature的形式保存。而使用侧的泛型信息并没有保存。 声明侧泛型 声明侧泛型包括: 泛型类,或泛型接口的...
    99+
    2023-09-18
    java 开发语言
  • JavaScript 引用类型之原始值包装类型String
    目录String 原始值包装类型String 原始值包装类型 操作方法1.字符串编码常规化函数 normalize()方法2.字符串拼接函数concat()3.字符串提取子...
    99+
    2024-04-02
  • Java 获取泛型的类型实例详解
    Java 获取泛型的类型实例详解Java 泛型实际上有很多缺陷,比如不能直接获取泛型的类型,不能获取带泛型类等。以下方式是不正确的:①.获取带泛型的类的类型Class lstUClazz = List<User>.class...
    99+
    2023-05-31
    java 泛型 类型
  • python泛型如何获取传入的类型
    Python中的泛型并不是强类型,因此无法直接获取传入的类型。 Python的类型注解主要是用来提供静态类型检查的,而在运行时并没有...
    99+
    2023-10-27
    python
  • 获取MySQL中变量的类型?
    无法获取 MySQL 中变量的类型。使用 CAST 运算符将变量的类型转换为另一个类型。语法如下 -SET @yourVariableName:=’anyValue’使用 CAST 运算符转换为另一种类型。语法如下 ...
    99+
    2023-10-22
  • javascript有什么原始类型
    小编给大家分享一下javascript有什么原始类型,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • javascript原始类型有哪些
    javascript中的原始类型有:1.number,数值对象;2.string,字符串对象;3.boolean,布尔对象;4.undefined,未定义类型;5.null,空类型;6.symbol,唯一标识符;javascript中的原始...
    99+
    2024-04-02
  • Java中如何区分引用类型和原始类型
    今天就跟大家聊聊有关Java中如何区分引用类型和原始类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java中区分引用类型和原始类型 (转)[@more@]下表列出了原始类型以及它...
    99+
    2023-06-03
  • Vue六大基本类型中的原始值响应式
    目录ref响应丢失响应关系建立toRef 函数的实现自动脱 ref所谓原始值即针对六大基本类型的值的响应式 ref 由于 proxy 无法阻止原始值的修改,故此方法在这里不管用 我们...
    99+
    2023-01-04
    Vue原始值响应式 Vue响应式
  • PHP:变量类型获取和数据类型转换
    目录 1、获取变量类型2、变量类型判断3、类型转换3.1、int 转 string3.2、string 转 int 1、获取变量类型 ...
    99+
    2023-09-18
    php
  • Java中获取泛型类型信息的方法
    目录声明侧泛型使用侧泛型获取泛型类型相关方法1. Class类的泛型方法2. Field类的泛型方法3. Method类的泛型方法4. ParameterizedType类获取使用侧...
    99+
    2023-03-08
    Java获取泛型类型信息 Java 泛型类型信息
  • javascript中原始类型指的是什么
    这篇文章主要介绍了javascript中原始类型指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、类型说明boolean布尔,值为 true 或 false&nbs...
    99+
    2023-06-15
  • 怎么获取javascript变量的类型
    这篇文章主要介绍“怎么获取javascript变量的类型”,在日常操作中,相信很多人在怎么获取javascript变量的类型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么...
    99+
    2024-04-02
  • java怎么获取对象的类型
    在Java中,可以使用getClass()方法来获取对象的类型。getClass()方法是Object类的方法,因此所有Java对象...
    99+
    2023-09-22
    java
  • javascript中原始类型和引用类型有什么区别
    小编给大家分享一下javascript中原始类型和引用类型有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、区别(1)原始类型存储的是值,引用类型存储的...
    99+
    2023-06-15
  • Java中引用类型和原始类型有什么区别
    本篇文章给大家分享的是有关Java中引用类型和原始类型有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。另...
    99+
    2023-06-17
  • 如何将一种类型转换为基于它的新类型?
    问题内容 我创建一个新类型来添加特定于我的应用需求的自定义方法 type content html.node 我知道我可以从 content 类型的 content var 中派生出 ...
    99+
    2024-02-06
  • JavaScript 原始包装类型汇总
    目录一、原始包装类型1、Boolean2、Number3、String二、原始包装类型的特点1、原始值为什么可以调用一些方法2、引用类型和原始值包装类型的区别3、原始包装类型构造函数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作