问题标签 [implicit]
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.
c++ - 防止在 C++ 中的构造函数中隐式转换数字类型
我有一个形式的构造函数:
我的类(int a,int b,int c);
它被这样的代码调用:
MyClass my_object(4.0, 3.14, 0.002);
我想阻止这种从 double 到 int 的自动转换,或者至少在编译时得到警告。
在这种情况下,“显式”关键字似乎不起作用,对吧?
c# - 我们什么时候必须在 C# 中使用隐式和显式运算符?
这些运算符的用途是什么?
scala - 如何在 Scala 中使用具有多个输入的隐式?
例如,我如何编写一个隐式应用以下内容的表达式:
谢谢
c++ - C++,如何确定隐式转换/构造函数?
C++ 如何确定几层深的对象的隐式转换/构造?例如:
它是否创建所有可能转换的树并选择适当的终端?还有什么?谢谢
scala - 将 Option[Object] 隐式转换为 Option[Int]
我正在使用返回 java.lang.object 的遗留 Java 代码。我将它传递给一个函数,我想做一些隐式转换:
从技术上讲,它会继续,但我不断收到相同的错误:expected Int, Option[Object] found。在这里,问题的重点快照:
我怎么做错了?我希望它会为我做转换,而不是我每次都必须写“asInstanceOf”。
python - 是否可以使用 Matplotlib 绘制隐式方程?
我想在 Matplotlib 中绘制隐式方程(形式为 f(x, y)=g(x, y) 例如 X^y=y^x)。这可能吗?
.net - 检查的显式行为与隐式行为
我不确定如何构建这个问题,但我很想知道你们对以下情况有何看法以及您更喜欢哪一种。
我们正在使用 winforms 处理客户端-服务器应用程序。我们有一个控件,在填充另一个字段时会自动计算一些字段。所以我们有一个字段货币,当用户填写它时,它将确定另一个字段的自动填充,可能是更多字段。
当用户填写货币字段时,将根据用户引入的字符串从缓存中检索货币对象。如果在缓存中找不到输入的货币,缓存对象将返回空引用。当要求应用层根据货币计算其他字段时,再往下,给定一个空货币,将返回一个空的特定字段。这种方式默认的隐式行为是清除所有字段。这是预期的行为。只是为了更清楚一点,当用户输入“不可用的货币”时,他当然会收到通知,但依赖于输入的货币的字段也应该被清除。这是通过将特定控制值设置为空来完成的。
我称之为显式实现的是验证 Currency 对象是否为空,在这种情况下,依赖字段被显式清除。
我认为后一个版本更清晰,更不容易出错且更可测试。但这意味着一种冗余形式。前一个版本不太清楚,它暗示了应用层的某种行为,而在测试中没有表达出来。也许在较低层测试中,但是当需要修改较低层时,以便在给定零货币的情况下应该返回其他东西,我认为没有动机的测试不会成为阻碍在上层引入错误。
你们有什么感想?
scala - 为什么这个 Scala 方法的显式调用允许它被隐式解析?
为什么这段代码编译失败,但是当我取消注释指示的行时编译成功?(我每晚都使用 Scala 2.8)。似乎显式调用string2Wrapper
允许从那时起隐式使用它。
编辑:感谢到目前为止的答案,其中包括指向 Martin Odersky 评论的指针,
“没有显式结果类型的隐式转换仅在其自身定义后的文本中可见。这样,我们避免了循环引用错误。”
我仍然有兴趣找出 1)“循环引用错误”的危险是什么?,以及 2)为什么显式调用会产生任何影响?
sql-server - Sql Server:分块删除仍会填满事务日志;失败时,所有删除都回滚 - 为什么?
这是我的场景:我们有一个数据库,我们称它为 Logging,其中包含一个保存来自 Log4Net 的记录(通过 MSMQ)的表。数据库的恢复模式设置为简单:我们不关心事务日志——它们可以翻转。
我们有一个作业,它使用 sp_spaceused 中的数据来确定我们是否达到了某个大小阈值。如果超过阈值,我们将确定需要删除多少行才能将大小降低到该阈值的 x%。(顺便说一句,我正在使用 exec sp_spaceusedMyLogTable
来TRUE
获取行数和它们平均大小的粗略近似值,尽管我不相信这是最好的方法。但这是一个不同的问题。)
然后我尝试通过循环调用基本上执行此操作的 sproc 来分块删除(例如,一次 5000 个):
直到我删除了需要删除的内容。
问题是:如果我有很多行要删除,事务日志文件就会填满。我可以通过跑步看着它成长
令我困惑的是,当作业失败时,所有已删除的行都会回滚。换句话说,似乎所有块都被(以某种方式)包装在隐式事务中。
我已经尝试明确设置隐式事务关闭,将每个 DELETE 语句包装在 BEGIN 和 COMMIT TRAN 中,但无济于事:要么所有删除的块都成功,要么根本没有。
我知道简单的答案是,使您的日志文件足够大,以处理您曾经删除的尽可能多的记录,但是,为什么这被视为单个事务?
抱歉,如果我错过了一些简单的事情,但是我查看了很多有关日志文件增长、恢复模式等的帖子,但我无法弄清楚这一点。
另一件事:一旦作业失败,日志文件会在一段时间内保持在 95% - 100% 左右,然后再回落。但是,如果我运行
它立即回落到大约 5% 的利用率。
TIA。