generics 相关问题

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

如何在 Kotlin 中使用“where”并同时扩展另一个(通用)类?

我有两个接口,Foo和Bar,还有一个类Baz。我想创建一个扩展 Baz 的新类 Buz,其中 Buz 的类型参数扩展了 Foo 和 Bar。所以我...

回答 1 投票 0

使用Python类型注释声明一个通用的Mapping子类?

我正在尝试向 Python 3.4 中的 Mapping 子类添加泛型类型注释: 从输入导入映射、TypeVar、迭代器、字典 K = TypeVar('K') V = TypeVar('V') M 类(映射[K,V]): 定义

回答 1 投票 0

Collection<Object>怎么不是所有类型集合的超类型?

我正在研究Oracle文档中的通配符,我无法理解以下部分: *考虑编写一个打印出集合中所有元素的例程的问题。这里'...

回答 1 投票 0

如何创建单例 IEnumerable?

C# 是否提供了一些不错的方法将 T 类型的单个实体转换为 IEnumerable? 我能想到的唯一方法是: T 实体 = new T(); IEnumerable = 新列表 { ent...

回答 4 投票 0

Python 类型:使用像 Java Clazz 中的 Clazz[T] 这样的泛型返回类型<T>

所以我知道Python的打字。可选。但我编写了自己的原始 PyOptional(代码在这里),并希望将 Options[T] 与我的 PyOptional 结合到 PyOptional[T]。 我目前使用的是Python 3.7...

回答 1 投票 0

Python 类型提示:Callable 后跟 TypeVar 是什么意思?

我试图理解以下代码中的类型提示 Getter[T]: 简化示例 T = 类型变量('T') Getter = Callable[[T, str], str] 类 AbstractClass(abc.ABC): @abc。

回答 2 投票 0

如何对函数/方法参数进行通用类型注释以接受任何实数类型?

我想编写一个泛型函数,它采用实现所有实数运算的任何类型的实例(例如 int、float、fractions.Fraction 或第三方类型)。我找到了努...

回答 1 投票 0

如何约束 Union 以使输入和输出类型匹配?

我有一个测试用例.py: 导入路径库 导入输入为 tp # 不受我控制 PathType = tp.Union[str, pathlib.Path] defforeign(文件名:PathType) -> PathType: 返回文件名 # 下...

回答 1 投票 0

如何添加通用类型的数字

我有一个具有唯一键的对象集合。该键可以是数字或字符串,它是通用的,大多数班级并不关心它,因为它存储在字典中....

回答 1 投票 0

Python 类型:处理具有继承的泛型类中的 Type[T] -> T 方法,其中 T 是泛型本身

我正在尝试实现抽象泛型类并在子类中细化泛型方法参数/返回值,并且我从 MyPY 得到了一个奇怪的类型错误提示。 如果有人...

回答 1 投票 0

修改泛型类型的丰富比较TypeError异常消息

我有以下代码,我创建了一个支持比较的泛型类型。当我比较不同类型时,代码会产生异常(如预期)。但是,我想修改异常的

回答 1 投票 0

Python 通用迭代器注释

我正在尝试注释一个仅返回两个值的迭代器,T 和 cls[T]。 目前我将其注释如下: from __future__ 导入注释 导入打字 类节点(打字。通用...

回答 2 投票 0

在继承的泛型集合中迭代 self 时出现编译错误

我是 Delphi 新手,但在 C# 方面经验丰富,通常会认为这是一件很容易做的事情,但我得到了 “E2430 for-in 语句无法对集合类型“类引用”进行操作...

回答 3 投票 0

当“存在具有此名称的两种不同类型,但它们不相关”时,如何修复 Typescript 泛型类

考虑以下代码。 ColumnSorter 旨在通过字符串名称封装一组排序函数,然后将正确的排序函数应用于数组。 导出类 ColumnSorter 考虑以下代码。 ColumnSorter 旨在通过字符串名称封装一组排序函数,然后将正确的排序函数应用于数组。 export class ColumnSorter<T> { constructor(private map: Map<string, (a: T, b: T) => number>) { } public sortBy<T>(sortcol: string, items: T[]): void { // *** DOES NOT COMPILE: items.sort(this.map.get(sortcol)); // *** DOES NOT COMPILE EITHER: let fn: (a: T, b: T) => number = this.map.get(sortcol); } } // here is an example Quote arrays. Others could be position, account, etc. // implementing with sort functions for that type. const quoteFunctionMap: Map<string, (a: Quote, b: Quote) => number> = new Map([ ['byLastPrice', (q1: Quote, q2: Quote) => { return q1.lastPrice - q2.lastPrice; }], ['bySymbol', (q1: Quote, q2: Quote) => { return q1.symbol.localeCompare(q2.symbol); }] ]); let colsort = new ColumnSorter<Quote>(quoteFunctionMap); let quotes: Quote[] = [new Quote(), new Quote()]; // blank quotes, for compile test colsort.sortBy("byLastPrice", quotes); 问题是从地图中获取排序函数。错误消息很详细,但不足以让我找到问题的根源。我的代码中是否缺少某些内容? Argument of type '((a: T, b: T) => number) | undefined' is not assignable to parameter of type '((a: T, b: T) => number) | undefined'. Type '(a: T, b: T) => number' is not assignable to type '(a: T, b: T) => number'. Two different types with this name exist, but they are unrelated. Types of parameters 'a' and 'a' are incompatible. Type 'T' is not assignable to type 'T'. Two different types with this name exist, but they are unrelated. 'T' could be instantiated with an arbitrary type which could be unrelated to 'T'.ts(2345) 您的 ColumnSorter.sortBy 方法应使用类中的 T 泛型,而不是定义自己的。 export class ColumnSorter<T> { constructor(private map: Map<string, (a: T, b: T) => number>) { } // NOTE: changed from sortBy<T> to just sortBy below! public sortBy(sortcol: string, items: T[]): void { items.sort(this.map.get(sortcol)); let fn = this.map.get(sortcol); if (!fn) { throw new Error(`No sorter exists for ${sortcol}`); } // ... } }

回答 1 投票 0

通过输入继承Python 3中的泛型类型

我正在做一些在 Python 3.6 和 mypy 中输入的实验。我想设计一个实体类,可以通过两种方式实例化: 通过使用普通的初始化程序 (p = Person(name='Hannes...

回答 2 投票 0

基类和继承类的类型注释 - Generic 和 TypeVar 是正确的方法吗?

假设我有一个基类 从输入导入列表,可选 类节点: def __init__(self, name: str) -> 无: self.name = 姓名 self.children: List['Node'] = [] ... 和一个

回答 1 投票 0

C# - 静态类型不能用作类型参数

我有一个通用类可以帮助我检查参数值: 内部密封类参数 其中 T :类 { 私有无效TraceAndThrow(异常前) { 新

回答 6 投票 0

如何在Python3.7/3.8中使用泛型namedtuple?

我尝试在 Python 3.7(和 3.8)中使用通用命名元组功能,但解释器会引发错误。我使用了不好的方法吗? 从输入导入 NamedTuple、TypeVar、Generic 来自数据类...

回答 1 投票 0

用于相同通用函数签名的 Python 类型注释

typing.Callable 有两个“参数”:参数类型和返回类型。对于任意参数,参数类型应该是 ...,或者是显式类型列表(例如,[str, ...

回答 1 投票 0

如何在不提供泛型类型的情况下调用泛型类型的关联函数?

我的函数是结构的一部分(出于上下文原因),它不采用 self 参数。此外,结构本身采用通用参数 T 并具有一些特征限制: 特质

回答 2 投票 0

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