iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >如何限制特定类型的接口{}
  • 114
分享到

如何限制特定类型的接口{}

2024-02-06 05:02:16 114人浏览 独家记忆
摘要

问题内容 我正在使用 Go,并且有一个工厂函数,它根据请求的标识符返回不同类型的对象: func newobject(id string) interface{} { swit

问题内容

我正在使用 Go,并且有一个工厂函数,它根据请求的标识符返回不同类型的对象:

func newobject(id string) interface{} {
    switch id {
    case "truck":
        return truck{}
    case "car":
        return car{}
    ....
    }
}

以下是各自的结构类型:

type Truck struct {
    Foo string
}

type Car struct {
    Bar string
}

如您所见,卡车和汽车没有任何共同点。问题的产生是因为我现在在调用 newobject(..) 时必须处理过于宽泛的类型 interface{} 。我知道有泛型,但这需要在类型约束中保留所有受支持类型的列表,这会使我的代码库中的事情变得复杂。

基本上我正在寻找一种如何在这里使用继承的方法,go 当然不支持。另一种选择是什么?


正确答案


newobject(..)函数可以在泛型的支持下实现。您不需要在类型约束中保留所有支持类型的列表。


func NewObject[T any](id string) T {
 var vehicle any

 switch id {

 case "truck":
  vehicle = Truck{
   Foo: "foo",
  }
 case "car":
  vehicle = Car{
   Bar: "bar",
  }
 }

 if val, ok := vehicle.(T); ok {
  return val
 }

 var otherVehicle T
 fmt.Printf("Not implemented. Returning with default values for \"%v\"\n", id)
 return otherVehicle
}

您可以在此处查看完整示例。

以上就是如何限制特定类型的接口{}的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何限制特定类型的接口{}

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何限制特定类型的接口{}
    问题内容 我正在使用 go,并且有一个工厂函数,它根据请求的标识符返回不同类型的对象: func newobject(id string) interface{} { swit...
    99+
    2024-02-06
  • 如何导航到特定类型
    编程网今天将给大家带来《如何导航到特定类型》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望...
    99+
    2024-04-04
  • 类型定义和接口转换
    从现在开始,我们要努力学习啦!今天我给大家带来《类型定义和接口转换》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起...
    99+
    2024-04-05
  • PHP接口中如何处理重定向的数据类型?
    PHP是一种常用的服务器端编程语言,它可以与其他编程语言进行交互,提供了丰富的函数库和工具,方便开发者快速构建Web应用程序。在开发Web应用程序时,我们通常会使用API接口来处理数据请求和响应。在API接口中,重定向是一种常见的操作。本文...
    99+
    2023-10-21
    接口 重定向 数据类型
  • 如何将“接口”定义为开放API中的数据类型?
    php小编苹果将为大家介绍如何将“接口”定义为开放API中的数据类型。在开放API中,接口扮演着重要的角色,它定义了系统与外部应用程序之间的通信规则。将接口定义为开放API中的数据类型...
    99+
    2024-02-09
  • 接口类型选择指南: 如何根据需求选择适合的接口类型
    接口类型选择指南: 如何根据需求选择适合的接口类型,需要具体代码示例导言:在开发软件中,接口是不可或缺的组成部分。选择适合的接口类型对于软件的功能和性能是至关重要的。本文将介绍几种常见的接口类型,并提供代码示例,帮助读者根据实际需求进行选择...
    99+
    2023-12-23
    接口类型 需求分析 接口选择
  • SpringBoot如何在一定时间内限制接口请求次数
    这篇文章主要介绍“SpringBoot如何在一定时间内限制接口请求次数”,在日常操作中,相信很多人在SpringBoot如何在一定时间内限制接口请求次数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Sprin...
    99+
    2023-06-29
  • Go语言中的接口类型有哪些特点?
    Go语言中的接口类型是一种非常灵活和强大的特性,它能够帮助开发者实现多态性和代码复用。接口类型在Go语言中被广泛应用,具有以下特点: 接口类型是一种抽象的数据类型,定义了对象的行为,...
    99+
    2024-04-02
  • pandas.DataFrame中如何提取特定类型dtype的列
    本篇内容介绍了“pandas.DataFrame中如何提取特定类型dtype的列”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!pandas....
    99+
    2023-07-05
  • Cassandra中的Counter数据类型有什么特点和限制
    Cassandra中的Counter数据类型是用于计数的特殊数据类型。它具有以下特点和限制: 特点: Counter数据类型只能用...
    99+
    2024-04-09
    Cassandra
  • PHP接口中如何处理重定向的数据类型转换?
    PHP是一种广泛使用的编程语言,它可以用来开发Web应用程序。在Web应用程序中,接口是非常常见的一种开发方式。接口可以让Web应用程序与其他系统进行交互,以便实现数据的共享和传输。在接口开发中,重定向是一个非常常见的问题,因为它涉及到数据...
    99+
    2023-10-21
    接口 重定向 数据类型
  • Go语言接口类型怎么定义
    今天小编给大家分享一下Go语言接口类型怎么定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。接口接口是用来定义行为的类型,定...
    99+
    2023-07-05
  • vue如何将prop限制为类型列表
    这篇文章主要为大家展示了“vue如何将prop限制为类型列表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何将prop限制为类型列表”这篇文章吧。将 prop 限制为类型列表在 ...
    99+
    2023-06-27
  • go语言接口类型如何转换
    这篇文章主要介绍“go语言接口类型如何转换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言接口类型如何转换”文章能帮助大家解决问题。go语言可利用类型断言来进行接口类型。在Go中,无论是将一个...
    99+
    2023-07-05
  • Golang中如何处理动态接口类型?
    大家好,我们又见面了啊~本文《Golang中如何处理动态接口类型?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进...
    99+
    2024-04-05
  • 如何解决MyBatis在DAO层定义接口返回类型泛型无效的问题
    这篇文章主要讲解了“如何解决MyBatis在DAO层定义接口返回类型泛型无效的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决MyBatis在DAO层定义接口返回类型泛型无效的问题...
    99+
    2023-06-20
  • 确定 Golang 中函数返回的接口 {} 值的类型
    问题内容 我有一个从枚举返回值的函数。枚举定义如下: type DataType int64 const ( INT DataType = iota FLOAT ...
    99+
    2024-02-05
  • PHP 函数参数的类型限制
    php 函数参数可以指定类型限制,以限制函数只接收特定类型的数据,包括:bool、int、float、string、array、object、callable、iterable。此限制提...
    99+
    2024-04-19
    php 类型限制 可迭代对象 代码可读性
  • Java接口返回json如何忽略特定属性
    目录经常遇到的问题不完美的解决方案通过SimplePropertyPreFilter方式(Json返回)场景一: 只保留name和sex字段场景二: 过滤掉email和phone字段...
    99+
    2024-04-02
  • Mybatis的类型转换接口TypeHandler
    目录类型处理器接口TypeHandler类型处理器BaseTypeHandlerjdbc类型转为java类型java类型转为jdbc类型总结前言: mybatis可以实现jdbc类型...
    99+
    2022-11-13
    Mybatis类型转换接口 Mybatis TypeHandler
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作