Generics F#泛型编程-使用成员

假设我有一系列支持给定成员函数的类型,如下面的属性成员: type FooA = {...} with member this.Property = ... type FooB = {...} with member this.Property = ... 假设member属性为上述每种类型返回一个整数。现在,我想编写一个通用函数,它可以执行以下操作: let sum (a: 'T) (b: 'U) = a.Property + b.Property 我习惯于用C++编

Generics 从Java类型创建实例

我想知道是否可以从Java类型创建实例并填充参数化列表 我有一个类型UserDefinedType,带有一个成员变量List(以及一些基本类型) 在UserDefinedType上使用反射(处理自定义注释),我只处理带有特定注释的成员变量。如果在注释上设置了特定属性,则表示它是另一个用户定义的类型,而不是基元类型,因此处理方式不同。在本例中,我要做的正是使用UserDefinedType所做的 需要注意的是,我必须从Field.getGenericType()创建另一个用户定义类型的实例,并以某

Generics 实现通用接口

我已经写了这段代码 public interface IMusicInstrument { string InstrumentType(int InstrumentId); } public interface IGuitar<T, K> where T : GuitarBase where K : IMusicInstrument { string Name { get; set; } string GetType(T t);

Generics 将继承对象的集合传递给接受基础对象ICollection的方法

背景:我有一个DirectoryCollection类型的泛型集合,并指定T必须是IEntity类型。我有一个具体类型实体,它实现了IEntity,还有两个派生类型,Employee和Station 在.NET 4.0中,我知道可以()将带有IEnumerable参数的方法调用为DirectoryCollection,但是,对于带有ICollection类型参数的方法,这似乎不起作用。在所述方法中,我使用集合的Remove和Add方法,因此,我不愿将IEnumerable放入方法签名中 解决此问

Generics 关于自由箭头的有用操作

我们知道免费的单子是有用的,像这样的软件包只关心应用程序特定的效果,而不关心单子结构本身,从而使定义新的单子变得容易 我们可以很容易地定义“自由箭头”,类似于自由单子的定义: {-# LANGUAGE GADTs #-} module FreeA ( FreeA, effect ) where import Prelude hiding ((.), id) import Control.Category import Control.Arrow import Con

Generics Ada:所选组件中的前缀无效

我正在开发一个通用程序,用Ada过滤数据。 我试着用一个列表和一棵树来做到这一点 带有列表实现的程序运行良好。 我的问题是这棵树 我有不同的通用软件包: Arbre\u Binaire\u Recherche\u g.ads generic TYPE Element IS PRIVATE; WITH FUNCTION "="(E1,E2 : IN Element) RETURN Boolean; WITH FUNCTION "<"(E1,E2 : IN Element)

Generics 如何为嵌套在泛型结构中的类实现运算符?

当我在泛型结构中嵌套一个类并尝试实现相等运算符时,如下所示: struct Outer<T> { class Inner : Equatable {} } @infix func == <T>(lhs: Outer<T>.Inner, rhs: Outer<T>.Inner) -> Bool { return lhs === rhs } 这是编译器的错误,还是我做错了什么?在泛型类型结构中嵌套类或结构现在被XCode6 B

Generics 具有多个驱动程序的通用vhdl设计

我试图编写一些VHDL代码,其目的是获取一些外部输入信号,并将它们重定向到一些特定的输出。所有信号均由其自身的外部时钟驱动。我正在设计和测试它,所以下面的代码可能并不完全准确 此外,我尝试在输入端口和输出端口上锁定或缓冲输入信号,以确保信号在FPGA内部和外部PCB上具有最大的传播时间,从而避免时序冲突。这是我所知道的实现这一目标的唯一途径 现在,我们来谈谈这个问题。这基本上是一个具有多个时钟的通用体系结构,因此我使用generate语句生成不同的进程块(主要是因为我的模拟器拒绝以其他方式编译代

Generics 协变序列

我想创建一个F#seq,并确保每个元素都是记录类型SelectDescriptor,正如您目前所描述的问题,除非'a是常规类型,否则我看不到任何范例中的类型安全解决方案。正如您在问题中所指出的,您可以使用非泛型接口或抽象基类,但这种方法可能会在某个时候导致类型测试和不安全的强制转换—这绝对不是一个有利的选择 如果您可以重构描述符,那么其他选项可能会变得可用。为了支持集合中的各种不同内容,F#is实际上打开了一些与C#is相比的选项,前提是您可以提前指定哪些可能的选项使用有差别的联合 假设您有一系

Generics 如何在Kotlin中获取泛型参数类

Firebase的snapshot.getValue()预期按如下方式调用: snapshot?.getValue(Person::class.java) 但是,我想用一个通过类声明传递到类中的泛型参数替换Person class DataQuery<T : IModel> 但是当我尝试这样做的时候,我得到了一个错误 只能在类文本的左侧使用类 是否可以像在C#中那样对泛型参数提供类约束,或者是否可以使用其他语法来获取泛型参数的类型信息?您需要的是泛型参数的具体化修饰符,您可以在

Generics 泛型类型的闭包参数-异常

在下面的代码中,为什么Groovy似乎忽略了方法barMany中提供的闭包参数的泛型类型声明: import groovy.transform.CompileStatic @CompileStatic class Main { static main(args) { FooSub foo = new FooSub() BarSub bar = new BarSub() } } @CompileStatic class Foo<T>

Generics XML或JSON的JAX-RS响应不起作用

我有以下GenericRequest类,我使用它来扩展rest类,rest类基于用@XmlRootElement注释的实体类 public class GenericRest<T extends BaseEntity> { @Inject @Service GenericService<T> service; public GenericService<T> getService() { return service

Generics 泛型类型名称和值

我有一家仿制药厂。我想以字符串形式获取类型名及其值,例如: 值为Samsung的枚举TTV将返回'TTV.Samsung' 值为'stackoverflow'的字符串将返回'string.stackoverflow' 值为10的整数将返回'integer.10' 由TTV.Samsung制作的TValue(例如TValue.from(TTV.Samsung))将返回'TTV.Samsung' 这是我的函数声明: function TGenericFactory<TKey>.GetTy

Generics 获取Ninject中继承泛型约束的所有类型

我有泛型IMyGeneric,其中T:IBase 如何在ninject中获取所有类型的inheritIMyGeneric 我试过这个: this.kernel.GetAll<IMyGeneric<IBase>>(); this.kernel.GetAll(); 但这不起作用,它返回0个结果 我可以获取所有继承的IBase,然后foreach所有类型并使用this.kernel.get(type)但是我会有IEnumerable而不是IEnumerable,并且不能强制

Generics 返回UIViewController静态中的子类

考虑一个基本UIViewController类 class Rooms: UIViewController { class func instantiate()->Rooms { } static func make()->Rooms { let emplacedAndSetup = self.instantiate() // various kodes here // very likely put s.vi

Generics 为什么不是';t`From`自动用于强制转换为trait实现类型

我有两个特点: trait Foo {} trait Bar {} struct FooImpl; impl Foo for FooImpl {} struct BarImpl; impl Bar for BarImpl {} 第三种类型我想转换成: struct Baz; trait IntoBaz { fn into(self) -> Baz; } 由于连贯性,我无法为这两个特征定义两个implIntoBaz,因此我将其中一个改为: struct FooWrapper

Generics 如何定义扩展可为null但本身不可为null的泛型参数

在Kotlin中,有没有一种方法可以定义一个不可为null的泛型参数,它是可为null类型的子类型? 我想我可以做一些像 class nullableToNonnullable<A: Any?, B> where B: A, B: Any { fun toNonNull(a: A): B } 我不知道你到底想做什么,但是 (可为null的A)->(非null的A)函数 及 fun toNonNull(a:a?):B 具有B的解决方案将使用未经检查的强制类型转换,除非它们是内

Generics 为什么可以';t`&;(?大小和特征)`被转换为`&;dyn特质`?

在下面的代码中,无法从对实现相同特征的动态大小类型的引用中获取对特征对象的引用。为什么会这样?如果我可以使用这两种方法来调用Trait方法,那么&dyn Trait和&(?size+Trait)之间的区别到底是什么 实现FooTraitContainerTrait的类型可能例如具有type Contained=dyn FooTrait或type Contained=T,其中T是实现FooTrait的具体类型。在这两种情况下,获得&dyn FooTrait都很简单。我想不出还有哪种情况是这样的。为

Generics 使此函数成为泛型函数时,如何满足特征边界?

通过学习Rust(我来自Javascript/Python背景),我一直在使用image rs(0.23.12)库来实现一些基本的图像分析函数。我通过ImageRS为此提供的迭代器访问像素数据。下面是一个函数的最小示例,该函数接受对图像子区域(image::SubImage)的引用,并遍历其中的像素,对每个像素进行比较 (游乐场) 这将从编译器中得出以下结论: binary operation `!=` cannot be applied to type `<I as GenericIma

Generics C#4中的dynamic关键字是否允许对泛型执行某些以前不可能的操作?

C#4中的dynamic关键字引入了处理以前不可能的对象的新方法。这与泛型有何重叠?具体来说,是否有可能有用的操作现在合法有效 例如,这在现在是不可能的: // Use a type whose value is known only at runtime. Type t = ...; List<t> l = new List<t>(); // ... (add some items to the list) t first = l[0]; //使用仅在运行时才知道其值

Generics Scala中泛型集合的问题

我对如何在Scala中解决这个问题感到困惑。在Java中,我会放弃泛型或使用类型转换,但Scala比这更严格。这是我的 抽象基类Factory[+fb):此处映射[A,B],未在trait本身中实现,且为泛型),用于获取工厂集合。实际工厂类型为泛型且未知 迭代该泛型集合并执行传递给它的函数。该函数实际上调用工厂方法 返回F到P的不可变映射 编译器的问题不在于'gather'方法,而在于调用它的代码。我无法将其结果转换为Map[Factory[\uu],Product[\u]]],因为u不符合F我

Generics Scala 2.10中的具体化泛型

Scala中缺乏具体化的泛型是该语言最让我头疼的地方,因为如果不使用复杂的构造,就无法实现 Kotlin和Ceylon都支持具体化的泛型,所以在JVM之上这样做是绝对可能的。在文章中,有人说如果JVM没有改变Scala就不能支持它们,但是现在Scala 2.10对具体化的支持有限。所以我的问题是: 我们对Scala 2.10中的具体化有什么期望,例如,我是否能够实现一个?。它到底有多有限 如果Scala 2.10的具体化比和更为有限。为什么呢 你的论点有缺陷。Kotlin尚未发布*,锡兰刚刚发

Generics F中的泛型函数#

我仍在努力思考F#如何概括(或不概括)函数和类型,有一个案例困扰着我: let min(a, b) = if a < b then a else b let add(a, b) = a + b let minInt = min(3, 4) let minFloat = min(3.0, 4.0) // works! let addInt = add(3, 5) let addFloat = add(3.0, 5.0) // error: This expression was exp

Generics 管道操作员拒绝工作

我不明白为什么会这样 let data = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>( File.ReadAllText <| Path.Combine(myPath, "ejv.json")) 我不知道为什么,但是如果没有别名d,它就不能工作。据我所知,计算是从左到右的,所以你的第二个表达式相当于: let d

Generics TypeScript中的泛型方法和环境声明

我想知道TypeScript是否允许在方法的环境声明上使用泛型 例如: interface ObjectConstructor { // This works... define<T>(obj: any, item: T): void; } (() => { // TypeScript says "Cannot find name 'T'" here... Object.define<T> = (obj: any, item: T

Generics TypeScript数组中泛型和非泛型的联合类型

我现在正在玩TypeScript,在操场页面上工作,目的是将现有项目转换为TypeScript 我解决了我正在研究的问题,但在这个过程中,我遇到了一些我不太理解的问题。它涉及最简单的通用队列类,如图所示 class Queue<T> { private store: T[] = []; public enqueue(item: T) { this.store.push(item); } } const queue = new Queue<number>

Generics 字符串文字类型作为默认参数值

我试图通过使用in-TypeScript来防止redux reducer中的强制转换。我设法找到了一个可行的解决办法 密码 这是我正在使用的助手类型保护函数: export function isAction<A extends Action>(action: Action, type: A['type']): action is A { return action.type === type; } 操作类型声明为: export const LOGIN = "authen

Generics 用于切片的泛型remove()函数

我有3个切片(foo、bar、baz),每个切片都填充了不同类型的结构。为了删除一些样板代码,我想创建一个通用的remove(slice,struct)slice函数。与标准中提供的append()相反 没有一个结构是指针,因此没有必要将其置零。我曾想过使用接口{}来获得所需的结果,但没有效果。当前实现使用一个类型开关,然后有一个近复制粘贴的remove()(下面链接中的示例)从切片中删除。随着我继续扩展这个项目,它将成为更多的样板 正在尝试的示例: 如果它简单且易于实现。我想象它已经存在于标

Generics Ada/Gnat——包级动态泛型实例化

我有一个通用包: generic Size : Positive; package Foo is type Unbounded_Sized_Array is Array(1..Size) of Unbounded_String; type My_Type is record My_Array : Unbounded_Sized_Array; --other stuff end record; end Foo; 我需要

Generics 如何使泛型在Dart语言中工作?

我是Dart和类OOP的新手,请帮助我理解我在下面代码注释中提到的问题 main() { var shape = new Slot<Circle>(); shape.insert(new Circle()); } class Circle { something() { print('Lorem Ipsum'); } } class Square {} class Slot<T> { insert(T shape) { print

Generics 如何使用rust中的通用阵列板条箱初始化通用阵列?

我使用板条箱: structfoo{ 数据:通用阵列 } 但它没有解释如何初始化值: impl-Foo{ pub fn new()->Self{ 自我{ data://在这里放什么? } } } 操场帮助测试人员。您可以默认初始化并在之后对其进行更改: let mut data = GenericArray::default(); for x in &mut data { *x = 33; } 或者您可以使用GenericArray::from\u exact\u iter

Generics 如何确保泛型类型具有特定字段 发布结构实体{ 名称:String, } fn:T{ eprintln!{},entity.name; }

目前,以下代码未编译,因为类型t没有名称字段。 我知道铁锈有特征界限,有领域界限吗 我真的必须: 特征HasName{} 实体{}的impl HasName fn:T{ eprintln!{},entity.name; } 哦,等等,那也不能编译! 我是说,肯定有比这更简单的事情。 可能是javascript中的某种结构-解构?目前,traits中不能有相关字段,请参阅 但是,您可以向trait添加一个函数,就像您链接的示例一样。但是,您可以省略生命周期: pub trait HasName

Generics 复制Kotlin数组减去特定索引处的元素

我试图编写一个Kotlin函数来复制一个数组,其中一个元素被切掉。到目前为止,我得到的是: inline fun <reified T> minusIndex(s: Array<T>, i: Int): Array<T> { val r = arrayOfNulls<T>(s.size - 1) System.arraycopy(s, 0, r, 0, i) System.arraycopy(s, i + 1, r, i,

Generics 如何将选项传递给Rust';可以在反序列化::反序列化()中访问的s serde?

上下文:我正在Rust中编写一个光线跟踪器,但我正在努力寻找一种好方法,以文件系统无关的方式加载场景。我正在使用,这样我就不必发明自己的文件格式了。资源(图像纹理和网格数据)分别存储到场景文件中。场景文件仅存储这些文件的路径。因为光线跟踪器本身应该是一个平台无关的库(我希望能够将其编译到浏览器的WebAssembly),所以光线跟踪器本身对文件系统一无所知。我打算在反序列化场景时加载资源,但这现在给我带来了真正的问题: 我需要将文件系统接口代码的实现传递给serde,我可以在反序列化::反序列化

Generics 如何在返回类型中使用匿名闭包的高秩特征边界

是否可以返回带有引用的FnMut闭包,并返回具有相同生存期的引用 fn-fun(buf:&mut[f32],mut-idx:usize)->impl-FnMut(&[i16])->&i16]{ |输入|{ buf[idx]=输入[0]作为f32; idx+=1; &输入[1..] } } 我曾经尝试过类似于impl for&'a[i16])的方法,它给出了 error[E0482]:返回值的生存期不超过函数调用 -->src/main.rs:1:44 | 1 | fn fun(buf:&mut

Generics 如何映射Jersey客户端';s使用Jackson特性对Bean/Value对象的通用列表的响应

我试图使我的Rest客户机成为泛型的,这样我就可以使用同一个客户机类来实例化以检索VO列表,如书籍、作者、出版商或任何类似的VO。下面是我正在处理的泛型类,但我只得到检索到的LinkedHashMap的列表,而不是valueobject(Book)的列表。 我已使用生成rest服务 public class GenericRestClient<T> { private final Client client; public GenericRestClient() { cl

Generics 错误Kotlin:类型不匹配:推断的类型是T?但什么都没料到 类MyExample{ 抽象类字段(私有值getter:(E)->T?){ fun-get(实体:E):T{return-getter(实体)} } 接口元{ fun getFields():列表 } 接口元存储库{ 有趣的getMeta(klass:KClass):Meta? } lateinit var元存储库:元存储库 有趣的事情(实体:T?){ val meta=metaRepository.getMeta(实体!!::类)!! meta.getFields().forEach{field-> val fieldValue=field.get(实体)//

查看 class MyExample { abstract class Field<in E, T : Any>(private val getter: (E) -> T?) { fun get(entity: E): T? { return getter(entity) } } interface Meta<T: Any> { fun getFields(): List<MyExample.Field<T, *>&g

Generics 使用泛型类型时如何使用整数文本?

我想实现一个函数,计算任何通用类型整数中的位数。下面是我想出的代码: extern crate num; use num::Integer; fn int_length<T: Integer>(mut x: T) -> u8 { if x == 0 { return 1; } let mut length = 0u8; if x < 0 { length += 1; x = -x;

  1    2   3   4   5   6  ... 下一页 最后一页 共 65 页