问题标签 [mutators]

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.

0 投票
2 回答
54 浏览

c# - 使用验证设置 Date 类的正确方法

我有一堂课如下:

不工作的部分是在setDay()方法中验证我的一天。DateTime.DaysInMonth(year, month)(该方法检查给定年份中特定月份的天数以考虑闰年和二月)在用户/应用程序数据通过之前的几个月从默认构造函数值 0 调用以分配介于 1 和12. 我不能使用 DateTime 来验证整个事情,因为应用程序已设置为用户可以为日或月输入 0 值,这反过来不会以最终格式打印出日或月。

一个建议是让我的设置器私有化,并为用户创建一个公共 setDate 方法,允许他们以任何顺序设置日、月和年......但我似乎无法正确实现:

因为这只是跳过了我在私人二传手中的验证。

老实说,我可以找到很多方法让它与非传统方法一起使用,但我只需要帮助清理它以适应适当的类设计约定。

0 投票
1 回答
14370 浏览

c++ - 访问器和修改器 C++

我目前正在尝试学习 C++ 并按照说明进行操作。我研究过变异器和访问器,但我需要一个简单的解释。

上面的代码在头文件中。在说明中,它要求我为这两个数据设置一个公共访问器和突变器。我该怎么做呢?

它还提到检查年龄在突变体中不是负面的。我知道如何实现代码,但我只是对放置它的位置感到困惑。我是否将验证放在此头文件中?或在.cpp 中?还是在主要方法中?

我知道这听起来很傻,而且我确信这很简单,但我想尝试理解这一点。

0 投票
3 回答
1852 浏览

java - 在构造函数中使用 set 方法来初始化类的字段是一种好习惯吗?

我想在构造函数中使用类的 set 方法来检查要初始化的值,如果它们不符合我设置的约束,则抛出异常。

代码示例

输出

订购 8 x Souvlaki

异常捕获:数字必须是正数

线程“主”java.lang.IllegalArgumentException 中的异常:MyClass.main(MyClass.java:40) 的 MyClass.setString(MyClass.java:23) 的字符串不能为空。(MyClass.java:10)

输出正是我想要的。创建的第一个对象用适当的值初始化。调用 toString() 方法隐含地证明了这一点。第二个和第三个对象由于初始化错误而抛出异常。捕获第一个异常是为了让程序继续执行。第二个异常没有被捕获以便输出打印的错误消息是异常。

所以一切似乎都是正确的,但这是一种好的编程技术还是隐藏了一些错误?

0 投票
2 回答
7136 浏览

php - Laravel 5 mutators 仅在我创建记录时起作用,而在我更新记录时不起作用

嗨,我创建了一个突变器,只在我的电话号码上存储数字。这是我的个人资料模型中的代码。

这在我创建新记录时有效,但如果我更新记录它不起作用。我的问题是如何在创建和更新时执行 Mutator?

这是我在控制器中更新和创建的方式:

0 投票
1 回答
2633 浏览

datetime - Laravel 5 Attributes Mutators - Getter 问题

我的文章类中有以下日期变异器:

在创建新文章时,我使用 datetimepicker 将默认值设置为今天的日期,如下所示:

在我的表单中,published_at 和 end_at 输入字段如下:

但是,两个输入字段的日期时间都设置为今天的日期时间。我需要将published_at 的日期时间设置为今天午夜的日期,并将end_at 设置为今天日期时间的30 天。日期选择器默认值似乎被日期访问器方法覆盖,如果它是一个编辑操作,这很好。但是在创建新文章时,我需要根据 datetimepicker 小部件中定义的日期将其默认为默认值。

有人知道怎么修这个东西吗?

0 投票
1 回答
383 浏览

scala - 在scala中覆盖属性的方法

在 scala 中,很容易覆盖默认的访问器和修改器;这让我对公共属性感觉更舒服,因为它允许我在以后修改访问行为而无需更改我的类的签名。这是如何完成的:

变成:

但是,这并没有解决创建私有字段的主要原因;它不允许修改组件元素的行为。例如,对于 Growable,如果我添加一个新元素或清除我的列表,我可能想做一些特别的事情。解决此问题的一种方法是创建一个实现 Growable 的类,例如:

但是,这并不能完全解决问题,因为 'tags' 仍然可以设置为等于任何 Growable[String]。这会将 clear() 方法的行为更改为所提供的任何类型的行为。

无论如何,是否可以像覆盖属性的访问器/修改器一样覆盖属性的方法?这不会编译,但它表达了我想要做的事情:

0 投票
1 回答
86 浏览

php - 如何在存储到数据库之前自定义模型的字段

我有一个这样的模型:

像这样的控制器:

像这样的形式:

当我提交表单时,该img_profile字段存储默认缓存文件,即./private/var/tmp/phpceBMP2但我只想更新file_name.img_profile

img_profile在将请求存储到数据库之前,如何更改请求的值?

0 投票
2 回答
483 浏览

php - 从 php 表单中插入单独的出生日期值

好的,我没有想法,并且已经达到我研究的终点。

有一个带有出生日期选择字段示例的注册表单如下:

当然它在 laravel 的刀片模板中。

如您所见,它有 3 个单独的选择表单,其中包含 dob_month、dob_date 和 dob_year,并且这些值现在位于用户模型中的 mutator 上

dob作为 sql 列名。

问题

我想捕获dob_year, dob_monthdob_date其结构为 1997-12-01 ,implode('-'array_values($dobString))然后将其保存到数据库中。

当我完成注册新用户的过程时,我收到一条未定义索引的错误消息:dob。

现在我也感觉到,在 mutator 函数中,setDobAttribute($dob)我在该函数代码中遗漏了一些东西,但似乎无法确定它是什么。

输入?建议?

先感谢您。

0 投票
1 回答
52 浏览

python - python指针错误:意外的变量突变

我在python中有这段代码,当我运行它时,我希望G保持不变(同样的东西应该打印3次。)我的印象是python没有使用指向变量的指针?但是,当我运行 divide_grid() 时,我得到了这个:

为什么会这样?如何修复它,以便我可以在不更改原始 G 的情况下编辑网格的进程版本?这是我的代码的淡化版本,为了使其工作,我需要能够编辑并从此处理函数返回网格而不更改原始文件。

0 投票
2 回答
355 浏览

php - 在 Laravel 4 列表方法中使用访问器修改器

我有一个简单的突变器:

但我也有一个方法可以返回一个特定用户列表以在选择输入中使用:

我需要将该数组返回为 ['First Name Last Name', 'id']

但是突变器不起作用,例如

我发现了这个:https ://github.com/laravel/framework/issues/668

泰勒将其标记为已完成,但我无法使其正常工作。使用 Laravel 4.2。

有什么帮助吗?