返回顶部
首页 > 资讯 > 精选 >如何从对接口的引用中获取对具体类型的引用
  • 250
分享到

如何从对接口的引用中获取对具体类型的引用

2024-02-09 16:02:22 250人浏览 独家记忆
摘要

在PHP中,接口是一种定义了一组方法的抽象类。我们可以通过实现接口来保证类具有特定的行为。然而,有时候我们需要从对接口的引用中获取对具体类型的引用。这在某些情况下可能会导致一些困惑。所

PHP中,接口是一种定义了一组方法的抽象类。我们可以通过实现接口来保证类具有特定的行为。然而,有时候我们需要从对接口的引用中获取对具体类型的引用。这在某些情况下可能会导致一些困惑。所以,本文将向大家介绍如何从对接口的引用中获取对具体类型的引用。无论您是初学者还是有一定经验的开发者,本文都将对您有所帮助。接下来,让我们进入正题,一起探索这个问题的解决方案。

问题内容

我试图了解 Go 中的方法、接口和具体类型是如何工作的。

比如,这里。

我的代码为:

type i interface {mymethod(....)}
type a struct{i i....} 
func (a *a) mymethod(....) {
}

所以a实现了接口i。

在客户端代码中:

i := somefunction(....) // i is of type I
i.MyMethod(....)

如何从 i 获取对 a 的引用?

解决方法

  • 一组方法签名存储在接口类型中。 接口中定义的方法的任何实现都可以存储为其值。

  • 如果变量是使用接口类型定义的,可以访问接口中定义的方法以及与实现的类型关联的其他方法无法访问

界面:

type i interface {
    value() string
}

实施:

type a string

func(a a) value() string {
    return string(a)
}

func (a a) type() string {
 return  reflect.typeof(a).name()
}

在客户端代码中:


    // define a variable with the type of i.
    var a i = a("a") 

    // method value() defined in the i interface can be
    // called.
    value := a.value()

     // method type() can not be called, because it is not defined in the interface.
    typ := a.type()

注意:如果使用指针接收器实现方法,如下所示。您需要将实现的指针分配给i

实施:

type a string
func(a *a) value() string {
  return string(a)
}

在客户端代码中:

 a := A("a")
 var i I = &a 

以上就是如何从对接口的引用中获取对具体类型的引用的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何从对接口的引用中获取对具体类型的引用

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

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

猜你喜欢
  • 如何从对接口的引用中获取对具体类型的引用
    在PHP中,接口是一种定义了一组方法的抽象类。我们可以通过实现接口来保证类具有特定的行为。然而,有时候我们需要从对接口的引用中获取对具体类型的引用。这在某些情况下可能会导致一些困惑。所...
    99+
    2024-02-09
  • 如何理解JVM中Java对象的大小与引用类型
    本篇文章为大家展示了如何理解JVM中Java对象的大小与引用类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。小编总结了JVM概念中的Java对象的大小,以及三种引用类型的定义与区分。基本数据的类型...
    99+
    2023-06-17
  • Java中的对象如何引用+ReferenceQueue
    Java中的对象如何引用+ReferenceQueue?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。详解Java对象的强、软、弱和虚引用+ReferenceQueue一、强引用...
    99+
    2023-05-31
    java 对象 +referencequeue
  • Android中深入学习对象的四种引用类型
    目录一、引用详解1、强引用 StrongReference2、弱引用3、软引用4、虚引用前言: Java中,一切被视为对象,引用则是用来操纵对象的;在JDK1.2就把对象引用分为四...
    99+
    2024-04-02
  • JS中时间对象与引用类型的示例分析
    这篇文章将为大家详细讲解有关JS中时间对象与引用类型的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。基础类型有哪些?复杂类型有哪些?有什么特征?基础类型:Stri...
    99+
    2024-04-02
  • JS的时间对象与引用类型是什么
    这篇文章主要讲解了“JS的时间对象与引用类型是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS的时间对象与引用类型是什么”吧!   基础类型:Str...
    99+
    2024-04-02
  • 如何使用 PHP 和 NumPy 从 NPM 索引中获取数据?
    NPM(Node Package Manager)是一个非常流行的 JavaScript 包管理器。它提供了一个丰富的包库,其中包括许多流行的框架和工具。如果你想要获取一些有关 NPM 包的数据,那么你可以使用 PHP 和 NumPy 库...
    99+
    2023-10-16
    numpy npm 索引
  • GO语言中接口和接口型函数的具体使用
    目录前言GO语言中的接口怎么用?使用函数类型实现接口有何好处?GO源码例子前言 今天在编码中,看到了一个非常经典的接口用法如下,于是查阅了相关资料,发现此种写法为接口型函数,本文对此...
    99+
    2023-03-09
    GO语言接口 GO语言接口型函数
  • jQuery中如何将$引用的对象映射回原始的对象
    本文小编为大家详细介绍“jQuery中如何将$引用的对象映射回原始的对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“jQuery中如何将$引用的对象映射回原始的对象”文章能帮助大家解决疑惑,下面跟着小编...
    99+
    2024-04-02
  • 如何使用stream从List对象中获取某列数据
    目录使用stream从List对象中获取某列数据stream通过List里对象中某个属性最小来取该最小对象总结使用stream从List对象中获取某列数据 在 JDK 8 中增加了 ...
    99+
    2022-12-23
    使用stream List获取某列数据 List获取数据
  • PHP 如何使用 Elasticsearch 的 索引 API 接口
    目录 一、实战场景 二、知识点 PHP Elasticsearch 索引 index MySQL 三、菜鸟实战 一、实战场景 如何在 PHP 中使用 Elasticsearch 的索引 API 接口 二、知识点 PHP Elas...
    99+
    2023-08-31
    elasticsearch 大数据
  • ORACLE不使用工具的情况下如何获取对象DDL
    这篇文章主要介绍了ORACLE不使用工具的情况下如何获取对象DDL,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • 如何使用spring动态获取接口的不同实现类
    这篇“如何使用spring动态获取接口的不同实现类”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用spring动态获取...
    99+
    2023-06-29
  • PHP接口数据类型详解:如何应对各种数据类型的挑战?
    PHP是一种广泛使用的编程语言,特别是在Web开发领域中。在Web开发的过程中,我们经常需要使用接口来获取数据。然而,不同的数据类型可能会对接口带来不同的挑战。在本文中,我们将详细介绍PHP接口数据类型,并提供相应的演示代码,以帮助您更好地...
    99+
    2023-06-01
    接口 学习笔记 数据类型
  • 解决feignClient调用时获取返回对象类型匹配的问题
    feignClient调用时获取返回对象类型匹配 feignClient是springCloud体系中重要的一个组件,用于微服务之间的相互调用,底层为httpClient,在之前的应...
    99+
    2024-04-02
  • BootStrap如何获得轮播中的索引和当前活动的焦点对象
    小编给大家分享一下BootStrap如何获得轮播中的索引和当前活动的焦点对象,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!用bootstrap做一个轮播,当轮播滚到每张图的时候,在页面下面...
    99+
    2024-04-02
  • 如何在 ASP 对象中使用不同的数据类型?
    ASP(Active Server Pages)是一种服务端脚本语言,常用于创建动态的网页。在ASP中,我们经常需要使用不同的数据类型来进行数据的存储和处理。本文将介绍如何在ASP对象中使用不同的数据类型。 一、字符串类型 字符串类型是AS...
    99+
    2023-07-29
    对象 数据类型 leetcode
  • Spring开发中如何合理使用Java的数据类型索引?
    在Spring开发中,我们经常需要使用Java的数据类型索引来进行数据处理。Java提供了许多数据类型索引,包括数组、列表、集合等,但是如何合理地使用它们是我们需要思考的问题。本文将介绍在Spring开发中如何合理使用Java的数据类型索...
    99+
    2023-08-25
    数据类型 索引 spring
  • 如何在PHP中使用JavaScript中的索引对象来提高性能?
    在Web开发中,PHP和JavaScript是两种非常常用的编程语言。PHP通常用于服务器端处理数据和生成HTML,而JavaScript则用于在客户端实现动态交互和响应用户操作。这两种语言各自有其优缺点,但在某些情况下,它们需要紧密协作...
    99+
    2023-08-09
    索引 对象 javascript
  • 如何利用pandas工具输出每行的索引值、及其对应的行数据
    下面给大家介绍如何利用pandas工具输出每行的索引值、及其对应的行数据,先给大家展示下输出结果,感兴趣的朋友可以参考具体实例代码。 输出结果 name  &n...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作