traits相关内容
我有一个 Java/Scala 混合 Maven 项目.我需要重用 Saddle 方法 make,该方法具体定义为名为 Index 的特征的一部分.该方法定义为 here 如果这有任何帮助.我曾尝试使用 Index.make 或 Index$class.make 从 java 调用该方法,但在这两种情况下,我都收到 error: cannot find symbol 编译错误. 有没有办法从
..
我发现了这个特定问题的类似问题,但是问题是由于有人试图直接实例化 T.在这里,我试图创建一个 trait,它是一个通用接口,用于扩展类并使用 classOf[T] 将它们自动存储在 Riak 等数据库中.使用 Scala 2.10. 这是我的代码: trait RiakWriteable[T] {/*** Riak 中保存类数据的数据桶名称*/def bucketName: 字符串/***
..
给定的简化代码示例: 密封性状 A {val c1: 字符串val c2: 整数def copy[Z 如何在特征 A 中定义 copy 方法,以便它匹配为案例类和“目标"文件生成的方法?给定定义会进行类型检查并抱怨 B 和 C 类中缺少方法 copy. 解决方案 scala 编译器不会为定义名为 copy 的方法的 case 类生成复制方法. scala -Xprint:typer
..
我有一个这样的结构 #[derive(CustomTrait)]结构示例{v:Vec u8 ,} 我的性格是这样的 trait CustomTrait {...} 我可以做以上的事情吗?它为我抛出了一个错误. 我想要类似于 Clone 特性的东西.这可以用 Rust 实现吗? 解决方案 #[derive(Foo, Bar)] 是 #[derive_Foo] #[derive_
..
Rust FromStr trait 是这样定义的 pub trait FromStr {输入错误;fn from_str(s: &str) ->结果;} 它没有命名它的生命周期,并且不能为包含对源字符串的引用的东西实现该特征,例如: struct MyIterator{cur_pointer: &'a str}impl'a>MyIterator 的 FromStr{输入 Err = i32
..
在下面的示例中,MyTrait 扩展了 IntoIterator,但在循环中使用时编译器无法识别它. pub trait MyTrait: IntoIterator{fn foo(&self);}pub fn run(my: &M) {在我的{println!("{}", a);}} 我收到错误: error[E0277]: `&M` 不是迭代器-->src/lib.rs:6:14|6 |在
..
我们可以像这样用非静态参数匹配一个普通函数: fn 处理器(数据:&i32)->&i32 {数据}fn进程(数据:&'b i32,处理器:impl 'static + for Fn(&'a i32) -> &'a i32) ->&'b i32 {处理器(数据)}fn 主(){让数据= 1;println!("data: {}", process(&data, processor)
..
我正在尝试将 C 类型参数添加到此代码中 (playground): 使用 std::ops::Index;struct ConnectionHandle(usize);结构体连接(C);实施 C索引对于 Vec{类型输出=连接;fn index(&self, ch: ConnectionHandle) ->&Self::输出{&self[ch.0]}} 但这样做会
..
以下面的例子(Playground): #![feature(generic_related_types)]#![allow(incomplete_features)]特质产生{输入 CustomError;fn产生(&'a self)->结果= GenericError;fn产生(&'a self)->结果;|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
..
这是一个特征(针对问题进行了简化),我想为每个表现得像切片的类型实现它: trait SliceLike {类型项目;///计算并返回(拥有)集合中的第一项.fn first_item(&self) ->自我::项目;} 注意Item类型是关联类型;我希望 SliceLike 的每种类型都具有唯一的元素类型. 这是一个全面实施的尝试: 使用 std::ops::Deref;impl<T
..
如果我有一个 Box,我该如何调用需要 trait 对象的函数?换句话说: trait T { ... }fn func(t: &T) { ... }fn some_other_func() {b:方框 T ;//假如//这些工作,但有没有更好的方法?func( &*b );//1函数(借::借(&b));//2} 1 和 2 似乎都错了.我是否遗漏了一些明显的东西? 解决方案
..
Scala 允许您像这样进行早期定义: trait A {val v: 整数}B 类用 A 扩展 { val v = 4 } 此功能的使用示例是什么? 解决方案 每当该值用于特征初始化时.所以对于这个特性的例子: trait UsefulTrait {val 参数:整数private val myHelperObject = new MyExpensiveClass(paramete
..
我想知道一个实现std::io::Write的结构体;是在某个文件中描述的吗? 解决方案 当您查找 API 时 APIcode>std 你可以在那里搜索你的特征(例如 std::io::Write). 当您向下滚动到“Implementors" 您将在 std 中看到实现该特征的所有结构体/枚举. 为了获得更好的概览,您可以使用 + 或 - 键折叠所有部分并获得一个不错的概览,
..
我开始着手我的第一个更雄心勃勃的 Rust 项目,并努力解决我在用于学习的任何资源和教程中都没有遇到的问题.问题的标题捕获了抽象问题,但对于示例,我将使用我正在与之抗争的具体示例. 对于我的项目,我需要与不同的第三方服务进行交互,我决定使用actix 框架作为我领域中不同参与者的抽象.框架定义了必须实现的 Actor trait: 使用actix::prelude::*;struct My
..
即使我为我的结构实现了 IndexMut,我也无法获得对结构内部向量元素的可变引用. 使用 std::ops::{Index, IndexMut};结构测试{数据:Vec T ,}实施索引用于测试 {类型输出 = T;fn index(&'a self, idx: usize) ->&'a T {返回 &self.data[idx];}}实施IndexMut用于测试
..
背景 我知道在 Rust 中人们更喜欢 &str 而不是 &String.但在某些情况下,我们只获得了 &String. 一个例子是当你调用 std::iter::Iterator::peekable 时.返回值是一个 Peekable 对象,它将原始迭代器包装到其中并为您提供一个额外的方法 peek. 这里的重点是 peek 只给你一个对迭代器项的引用.因此,如果您有一个包含
..
代码 pub trait Q{fn f();}酒吧特质 A {I型;F型:Q;}//这有效(1)////pub struct S//在哪里//T: A//{//不满足的 trait bound (2)pub struct S 在哪里T:A,{吨:吨,} 编译失败: error[E0277]: trait bound `::F: Q` 不满足-->
..
我正在编写一些代码,并且有一个特性,它带有一个按值获取 self 的方法.我想在 Box 的 trait 对象上调用这个方法(消耗 Box 及其值).这可能吗?如果是这样,如何? 在代码方面,一个最小的例子看起来像下面的(不完整的)代码: trait 消耗品 {fn 消耗(自我)->u64;}fn consumer_box(ptr: Box) ->u64 {//我可以在这里放什么?} 我
..
我正在尝试将一个数字解码为一个整数,如果它不是一个数字,则获得一个仅针对该数字的迭代器或一个空迭代器.我试着这样做: let ch = '1';ch.to_digit(10).map(once).unwrap_or(empty()) 这不会编译.我收到以下错误消息: 错误[E0308]:类型不匹配-->src/lib.rs:6:41|6 |ch.to_digit(10).map(once).
..
在 tokio.rs 文档中,我们看到以下片段 //将socket流拆分成可读可写的部分让(读者,作者)= socket.split();//将字节从读取器复制到写入器让金额 = io::copy(reader, writer); 我假设 split 确实是 Stream::split,但我无法弄清楚这个特性如何应用于 TcpStream 鉴于流页面没有提到 TcpStream 和副反之.
..