generics 相关问题

泛型是一种参数多态,可以在各种语言中找到,包括.NET语言,Java和Swift。

使用 Rust 中通用特征绑定类型中定义的 const

尝试在 Rust 中实现 ResourceId 抽象,以便: 对于给定的资源类型,ID 的前缀在编译时受到限制 对于给定的资源类型,其大小(以字节为单位)...

回答 1 投票 0

如何在 TypedDict 上指定泛型?

我想要一个班级,有以下成员: 函数 f,采用 In 类型的参数和由参数指定的 kwargs 函数 make_parameters 返回参数,可以是

回答 1 投票 0

Godot C# - 使用泛型类型作为信号参数

在我当前项目的过程中,我发现自己在许多不同的类中重写了类似的样板,以便在变量发生更改时发出信号。举个例子...

回答 1 投票 0

Go 的通用结构

这个 C# 代码在 Go 中的等价物是什么,我该如何构建它 ModelX 类 { 公共 T 数据 { 获取;放; } } 型号X 我尝试过类似的事情: t...

回答 1 投票 0

C# 中的语法歧义

表达式 (A < B, C > D) 是一个包含两个元素的元组,每个元素都是一个比较。 表达式 (A D, E) 是一个包含两个元素的元组,第一个元素是声明表达式...

回答 1 投票 0

使 Swift 泛型方法采用可选或未包装的关联类型

我有以下代码,基本上将字符串转换为适用的枚举: func 值(对于键:字符串)-> 字符串? { 返回值(用于:键).first } ...

回答 1 投票 0

在 C# 中继承的类类型上递归获取GenericArguments?

在 C# 中我有 Gen1 类 {} Gen2 类:Gen1 {} 类 Ins:Gen2 {} var ins = new Ins(); 类型 insType = ins.GetType(); 我怎样才能得到

回答 1 投票 0

在Scala 3宏中使用upickle读取

尝试编写一个通用宏,用于使用 Scala 3 中读取的 uPickle 反序列化案例类: inline def parseJson[T:Type](x: Expr[String])(使用引号): Either[String, Expr[T]] = '{ 尝试 对...

回答 1 投票 0

拥抱 Swift 泛型问题,一些纽约键盘。协议与 func 关联类型

在wwdc2022中,苹果使用静态函数来创建模型,稍后在 type(of: ) 中使用。 这是视频https://developer.apple.com/videos/play/wwdc2022/110352/ 我想简化示例,但我得到了......

回答 1 投票 0

仅使用“Bar”从“type Bar = Set<Foo>”中提取“Foo”的实用程序类型

我正在寻找一种实用程序类型,它允许我提取集合的通用参数,但我只有可用的类型集,所以基本上 输入 Bar = Set; 输入 Baz = SomethingMa...

回答 1 投票 0

为 Option<T> 实现通用 TryFrom<T> 不起作用

我使用 TryFrom 将我的类型转换为一些具体类型。 我尝试将 Option 的 TryFrom 实现为一揽子实现,其中 T 指代那些具体类型,但我不能...

回答 1 投票 0

如何传递 Type 并通过属性访问它以在 AddDbContext 中使用

我需要创建一个类,在其中可以传入从 DbContext 派生的类型。稍后我需要使用此类将数据库上下文添加到服务中。 我必须使用泛型才能实现此目的吗?我会...

回答 1 投票 0

具有通用绑定的自定义 SwiftUI 控件

我的目标是在 SwiftUI 中创建一个自定义控件,该控件接受对通用值的绑定,而无需将控件的类型本身声明为该类型的通用类型。 例如,我真的很感兴趣

回答 1 投票 0

不要重复从泛型参数中提取的类型

我正在寻找一种方法来避免在以下接口声明中重复 T["uuid"] : 导出接口 Foo { getAll():承诺 我正在寻找一种方法来避免在以下接口声明中重复 T["uuid"]: export interface Foo<T extends { uuid: unknown; name: string } > { getAll(): Promise<T[]>; getAllIn(ids: T["uuid"][]): Promise<T[]>; findOne(id: T["uuid"]): Promise<T | null>; findOneByName(name: string): Promise<T | null>; getOne(id: T["uuid"]): Promise<T>; addOne(item: T): Promise<void>; deleteOne(id: T["uuid"]): Promise<void>; updateOne(item: T): Promise<void>; } 有没有办法获得 T["uuid"] 的别名之类的东西? 不,你不能有本地范围的类型别名。在 microsoft/TypeScript#23188 上有一个对此类功能的长期开放请求,但目前它还不是该语言的一部分。 除非它被实现,否则您的选择是要么创建一个正常作用域的类型别名,例如 type U<T extends { uuid: any }> = T["uuid"]; interface Foo<T extends { uuid: unknown; name: string }> { getAll(): Promise<T[]>; getAllIn(ids: U<T>[]): Promise<T[]>; findOne(id: U<T>): Promise<T | null>; findOneByName(name: string): Promise<T | null>; getOne(id: U<T>): Promise<T>; addOne(item: T): Promise<void>; deleteOne(id: U<T>): Promise<void>; updateOne(item: T): Promise<void>; } 每次提及该类型都可以节省几次击键... 或者,您可以滥用默认类型参数(如上面的 ms/TS#23188 中所述) interface Foo<T extends { uuid: unknown; name: string }, U = T["uuid"]> { getAll(): Promise<T[]>; getAllIn(ids: U[]): Promise<T[]>; findOne(id: U): Promise<T | null>; findOneByName(name: string): Promise<T | null>; getOne(id: U): Promise<T>; addOne(item: T): Promise<void>; deleteOne(id: U): Promise<void>; updateOne(item: T): Promise<void>; } 其中 Foo<T> 相当于 Foo<T, T["uuid"]>,因此相当于您原来的 Foo<T>。但默认设置并不是“真正”为此目的。编译器不能假设 U 将 always 是 T["uuid"],因此可能会发生奇怪的事情(例如,没有什么可以阻止你编写 Foo<{uuid: string, name: string}, number>)。Playground 代码链接

回答 1 投票 0

如何在 Python 中输入带有默认值的通用可调用对象?

在Python中,我有以下函数: T = 类型变量(“T”) def handle_func(x: int, func: Callable[[int], T]) -> T: 返回函数(x) 我可以这样使用它: handle_func(1, lambda x: x ...

回答 1 投票 0

通用切片参数和限制为切片类型的参数有什么区别?

考虑实验包切片。该软件包是实验性的,因此我知道签名可能会发生变化;我用它来说明问题。 考虑来自...的两个函数的签名

回答 2 投票 0

如何统一使用来自不同包且具有相似接口的 Go 类型

我有几组几乎相同结构的类型,每个都有自己的包。例如 包万岁 类型万岁计算器结构体{ } func (d BanzaiCalculator) Start(符号字符串) BanzaiSes...

回答 1 投票 0

有没有办法在Java泛型中模仿OR

编辑:我对示例进行了一些更改以获取想法: 喜欢 ...无需创建通用接口并为 Integer 和 Float 创建子类来实现...

回答 4 投票 0

仅针对特定接口类型(命令)执行 MediatR 预处理器

[注意:这是一个“替换”问题。第一个是基于我的主项目的代码,所以我用一个单一用途项目的代码重做了这个问题,该项目说明了原理

回答 2 投票 0

使用反射将泛型类传递给泛型方法

上下文如下: 我们有一个名为 Body 的基类,以及从基类 Body 继承的许多其他类。 公共课主体{ //... } 公共类A:主体{ //... } 公开课...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.