traits相关内容

“多态"的 Rust 特征的简单组织;返回

我有一个名为 Frame 的基本结构,它对大量计算很有用:. pub struct Frame;{grid_val: Vec,grid_space: Vec Frame 可以用来描述最基本的计算,但有时会出现更复杂的问题,我需要添加更多的几何信息.所以我对每个几何图形都使用了合成: pub struct Sphere{网格:框架,半径:T}pub struct 双曲线{to ..
发布时间:2022-01-24 16:42:40 其他开发

如何在 Julia 中使用开放式类型编写 Trait?

这是为了简化我提出的问题的一部分 这里: 我想编写一些代码,保证在满足特定条件的类型上工作.假设今天我写了一些代码: 不可变示例随便::ASCIIString结尾函数 step_one(x::Example)长度(x.whatever)结尾函数 step_two(x::Int64)(x * 2.5)::Float64结尾函数 combine_two_steps{X}(x::X)中间 = s ..
发布时间:2022-01-23 19:41:10 其他开发

是否可以为由所有实现该特征的类型组成的任何元组自动实现特征?

假设我有一个 特质快乐{} 我可以为我想要的任何结构实现 Happy,例如: 结构狗;结构猫;结构鳄鱼;impl Happy for Dog {}impl Happy for Cat {}impl Happy for Alligator {} 现在,我想自动 impl 我的 Happy 特征,用于由所有实现 Happy 特征的类型组成的任何元组.直观地说,所有快乐的元组也是快乐的. ..
发布时间:2022-01-20 00:10:07 其他开发

iOS 使用因 iPhone 尺寸之间的特征而异

我有一个按钮,我想根据所使用的 iPhone 设置不同的宽度.显然 7 Plus 的宽度更大,而线下的宽度更小.我单击按钮,单击 Vary for Traits,选择 Height,更改每个 iPhone 的约束,然后单击 Done Varying 并构建,但无论我在哪个设备上运行它,它始终保留我最后编辑的约束. 解决方案 Vary For Traits 与不同的 iPhone 尺寸无关. ..
发布时间:2022-01-18 20:47:52 移动开发

Groovy 中@Delegate、@Mixin 和 Traits 之间的区别?

有人能解释一下我什么时候想使用 Groovy Traits vs. Mixins (@Mixin) vs. Delegates (@Delegate)?也许一些权衡和设计问题会有所帮助. 它们似乎都允许重用多个“类"行为.谢谢.:-) 这个 SO 线程也很有帮助:@Delegate 之间的区别和 Groovy 中的 @Mixin AST 转换 解决方案 我同意,它们似乎都允许重 ..
发布时间:2022-01-18 12:05:30 其他开发

实施“谨慎"take_while 使用 Peekable

我想使用 Peekable 作为新 cautious_take_while 操作的基础,该操作类似于 IteratorExt 中的 take_whilecode> 但不消耗第一个失败的项目.(还有一个问题是这是否是一个好主意,以及是否有更好的方法来在 Rust 中实现这个目标——我很乐意得到这个方向的提示,但主要是我试图理解我的代码在哪里打破). 我尝试启用的 API 基本上是: 让 mu ..
发布时间:2022-01-10 15:06:43 其他开发

奇怪的重复通用特征模式:溢出评估需求

我试图用一堆字段实现一个通用结构,其中每个字段类型都应该知道整个结构的确切类型.这是一种策略模式. pub struct Example>, D>{酒吧:S,pub a: S::Associated,发布数据:D,}酒吧特质战略{类型关联;fn 运行(&self, &T);}酒吧特质 HasData {类型数据;fn 数据(&self) ->&自我::数据;}impl,D ..
发布时间:2021-12-31 22:51:28 其他开发

特性与接口

我最近一直在努力学习 PHP,但我发现自己沉迷于 trait.我理解水平代码重用的概念,并且不想一定要从抽象类继承.我不明白的是:使用特性和接口之间的关键区别是什么? 我曾尝试寻找解释何时使用一种或另一种的不错的博客文章或文章,但到目前为止我发现的示例看起来非常相似以至于完全相同. 解决方案 一个接口定义了一组实现类必须实现的方法. 当特征被use使用时,方法的实现也会随之而来 ..
发布时间:2021-12-31 14:21:54 PHP

可以在枚举类型上使用特征吗?

我通读了 trait 文档 并找到了一个简洁的在结构上使用特征的定义.是否可以在 enum 类型上使用特征?我看到过否定的答案,但他们已经 3 岁了,并没有完全按照我的意愿去做. 我尝试这样做: #[derive(Debug, Copy, Clone)]酒吧枚举场景类型{过场动画,游戏,菜单,暂停,学分,出口,}//我们要保证每个SceneType都可以静态播放特质可玩{fn 播放();} ..
发布时间:2021-12-29 16:31:30 其他开发

如何通过原始指针将闭包作为参数传递给 C 函数?

我正在 Rust 中使用 WinAPI,并且有一些功能(例如 EnumWindows()) 需要回调.回调通常接受一个额外的参数(LPARAM 类型,它是 i64 的别名),您可以使用它向回调传递一些自定义数据. 我已将 Vec 对象作为 LPARAM 发送到 WinAPI 回调,并且运行良好.例如,在我的情况下,将 lparam 值“解包"到 Vec 看起来像这样: unsafe ext ..
发布时间:2021-12-25 09:54:45 其他开发

在结构定义上指定“Fn"特征绑定而不修复“Fn"参数之一

我有一个包含函数对象的结构: struct Foo{功能:F,} 我想添加一个绑定到结构定义的 Fn 特征.问题是:我确实关心第一个参数(它必须是 i32),而不是第二个.我真正想写的是这样的: struct Foo在哪里∃ P 使得 F: Fn(i32, P),{功能:F,} 所以在英语中:类型 F 必须是一个接受两个参数的函数,第一个是 i32 (第二个可以是任何参数).上面的语法显然 ..
发布时间:2021-12-25 09:52:13 其他开发

看不懂 Rust 模块系统

我创建了一个用于教育目的的简单项目,所以我有一个主要功能和 3 个特征 Battery、Display 和 GSM 以及实现他们.我希望 main 函数位于文件 main.rs 中,而 3 个特征位于另一个名为 phone.rs 的文件中: phone.rs 修改电话{酒吧结构电池{型号:字符串,hours_idle : i16,hours_talk : i16}酒吧结构显示{尺寸:i16 ..
发布时间:2021-12-25 09:46:43 其他开发

了解特征和对象安全

我正在努力学习对象安全的基础知识.如果我有这个代码 struct S {x: i32,}特质特质:大小{fn f(&self) ->i32在哪里自我:尺码;}fn object_safety_dynamic(x: Trait) {} 我收到 error[E0038]: trait `Trait` 不能变成一个对象-->src/lib.rs:11:29|5 |特质特质:大小{|----- -- ..
发布时间:2021-12-25 09:42:10 其他开发