问题标签 [moo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Moo、惰性属性和默认/强制调用
我的基于 Moo 的类同时具有惰性和非惰性属性,它们同时具有default
和子属性coerce
。如果我不初始化属性,我会发现两个default
和coerce
subs 都被称为普通属性,但只default
被称为惰性属性。这似乎不一致。这是示例代码:
输出是:
coerce
如果我在构造函数中提供一个值,我只希望运行。更重要的是,我希望惰性属性和普通属性具有相同的执行顺序(或default
或default
和coerce
)。
那么,我的期望是否偏离了,这是一个错误,还是什么?谢谢!
perl - 如何以 Mooseish 方式声明 2 个依赖属性?
在我的对象构造函数中,我有声明同时初始化两个属性:
所以我得到了令牌,它的开始时间在一个声明中。
现在我尝试移植我的模块以使用 Moo(se) 在这里我不知道我应该如何同时设置这两个绑定属性?一些伪代码是这样的:
但是如何以 Moo(se)ish 的方式声明 2 个绑定属性?
编辑。我展示了方法的代码_get_authorized_token
,也许它会带来一些想法:
perl - 带有 Moo 的 Perl ORM
我想使用 Moo 作为我的应用程序的面向对象方法(使用关系数据库)。我过去曾使用过DBIx::Class和Rose::DB::Object,但这些分布与 Moo(既不是 Moose)无关。我正在寻找一个带有 Moo 集成的 ORM(或类似的),你知道这是否存在,或者有人有相关计划吗?
perl - 在 Moose 中,如果角色定义了具有默认值的属性,我如何在消费类中更改该默认值?
我的 Moose 课程使用了一个我不允许更改的角色。该角色定义了一个具有默认值的属性。我需要我的班级具有该属性,但具有不同的默认值。
那可能吗?
我所能想到的就是用我自己的一些代码围绕“新”方法,如下所示:
但我不确定围绕 new 是否有效,并且还希望有更优雅的东西。
perl - 如何将多个参数传递给 Perl Moo 中的设置器/写入器
我开始将几个 Perl 模块迁移到Moo,但因为 setter/writer 只能有一个参数(不是吗?)而被卡住了。这也适用于强制:
这是一个简单的用例:
有没有一种简单的方法来实现支持多参数设置的访问器?
perl - 动态 Moo 对象方法更改
我使用 Moo 作为我的 OO 引擎,并且我想在运行时更改某些实例的行为。我需要添加新方法并更改现有方法。
Moo可以吗?如果没有,我怎样才能做到这一点?
perl - 如何在 Moo 中使用 Types::Path::Tiny
我在这个网站上的第一个问题,我很快就来了。我是一名开发人员,我主要使用 Python 和 Perl。我充满激情,我真的很喜欢这种发展。
我的第一个问题是关于 Perl、Moo 和 Type::Tiny。当然,Type::Tiny 是一个非常适合与 Moo 一起使用的模块,但我将在另一个问题中回到这个主题。
我发现了 Moose 和 Moo 的 Types::Path::Tiny 模块强制,所以我尝试在我的类中创建一个属性目录,如文档中所述,因为我的项目在 Moose 中它可以工作,但是因为我搬到了 Moo ,它不再起作用:
在我的测试目录中:
错误是:
这是正常的,因为对于 Moo,强制是一个 coderef,所以我尝试了:
错误是:
如果我没有强迫:
对于这个简单的问题,我很抱歉,我一定很愚蠢并且错过了一些东西,但我看不出我在文档中可能遗漏了什么。
谢谢
perl - 我可以在 Dancer 中实例化一个对象以返回要显示的值吗?
我的 Dancer 应用程序模块中有以下代码:
我有一个名为 Dice.pm 的 Moops 类,如果我使用 .pl 文件对其进行测试,它工作得很好,但是当我尝试通过 Web 浏览器访问它时,我收到以下错误:无法找到对象方法“新”通过包“骰子”(也许你忘了加载“骰子”?)。
我可以用舞者做这个吗?
以下是 Dice.pm 的相关代码:
perl - 用 Moo 包装 Web 服务
我最近接手了一个 Perl 客户端的维护工作,该客户端包装了一个 Shipping web 服务。该项目在其初始状态中使用直接映射到 Web 服务对象的 Moo 对象,例如有 Parcel、Address 和 Label 类。
在 API 的 v2 中,您必须将代表这些对象之一的所有数据发布到 Web 服务,然后您会返回该对象的唯一 ID,该 ID 必须用于所有后续事务。
例如,如果我发布:
我会取回相同的数据,但包含一个 id:
我无法决定如何创建这些对象。目前,我有这个构造函数,它执行实际的 POST 以获取 ID,然后修改当前对象:
在 Perl 中包装 Web 服务时,这是一种常见的方法吗?似乎理想的方法是 POST 到 Web 服务并一次创建 Address 对象的所有属性,但是在 Moo(se) 中,一旦您使用 BUILD 方法,该对象就已经被创建了。
我对包装 Web 服务的习语不是很熟悉,还有比这更简单的方法吗?
任何建议/意见/建议将不胜感激。
perl - Moo:尝试重新加载角色中止
我有一个使用多个(独立)模块的模块,所有这些模块都具有相同的属性(本地化对象的句柄)。我没有将该属性添加到所有类,而是将该属性移动到一个角色,然后由所有顶级类使用。
不幸的是,现在我收到致命错误“尝试重新加载'角色'中止”+“在模块/运行时第 317 行的要求中编译失败”。
我已经双重和三重检查了我在所有课程中没有多次使用角色,但是对于如何解决问题并找到错误有点难过。由于这很早就失败了(在 BEGIN 之前/之前),现在也有办法(我知道)来调试它。
Moo 类层次结构和消耗看起来基本上是这样的(发布所有内容的代码很多,而且仍然太多):
主类:
角色:
第一级独立课程:
子类到二级类:
尝试使用主类时出现以下错误:
Foo/SwitchInfo.pm 的头部是(带有行号):
完整的角色是这样的:
一个小测试脚本验证了在多个类中使用一个角色,然后在另一个类中使用这些类是没有问题的。
如果还有人在看这篇长文,你发现有什么问题吗?或者这种角色的使用是否应该用于它?这是我第一次(真正)尝试使用角色,所以我可能在这里越界了。