问题标签 [coerce]

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 投票
1 回答
919 浏览

exception - cassandra-cli:无法将“allias”强制转换为版本 1 UUID

我正在尝试创建一个以 TimeUUIDType 作为行名的列族:

但我得到一个例外:

org.apache.cassandra.db.marshal.MarshalException:无法将“allias”强制转换为版本 1 UUID

我做错了什么?

0 投票
2 回答
197 浏览

ruby - 从数组强制

假设我有这个简单的类:

我知道这是一种不好的实现方式,但这是我能想到的最短方式。

如果我将数组作为颜色,它也可以工作:

但我不能这样做:

定义coerce不起作用。我怎样才能让它工作?

0 投票
1 回答
565 浏览

lisp - Lisp Coerce and Set 函数说明

我尝试直接对解释执行此操作:

并且工作正常。事实上(car example)返回 #\b

但如果我试试这个:

我不一样!

我该如何解决?

0 投票
1 回答
2890 浏览

wpf - 强制传播价值

tl; dr:强制值不会跨数据绑定传播。当代码隐藏不知道绑定的另一端时,如何强制更新数据绑定?


我在CoerceValueCallbackWPF 依赖属性上使用 a ,但我遇到了强制值不会传播到绑定的问题。

Window1.xaml.cs

Window1.xaml

即两个用户控件,一个嵌套在另一个内部,一个嵌套在一个窗口中。内部用户控件具有Value绑定到Value外部控件的依赖属性的依赖属性。在窗口中,一个TextBox.Text属性被绑定到Value外部控件的属性上。

内部控件CoerceValueCallback注册了一个Value属性,其效果是该Value属性只能分配偶数。

请注意,出于演示目的,此代码已简化。真实版本不会在构造函数中初始化任何东西;这两个控件实际上具有控件模板,这些模板可以完成此处相应构造函数中所做的所有事情。也就是说,在实际代码中,外部控件不知道内部控件。

当将偶数写入文本框并更改焦点时(例如,通过将虚拟按钮聚焦在文本框下方),两个Value属性都会得到适当更新。但是,当在文本框中写入奇数时,Value内部控件的属性不会改变,而Value外部控件的属性以及TextBox.Text属性都会显示奇数。

我的问题是:如何在文本框中强制更新(理想情况下也可以在外部控件的Value属性中,当我们在它的时候)?

在同一个问题上找到了一个 SO question,但并没有真正提供解决方案。它暗示使用属性更改事件处理程序来重置值,但据我所知,这意味着将评估代码复制到外部控件......这并不可行,因为我的实际评估代码依赖于一些信息基本上只有内部控制才知道(不费力气)。

此外,这篇博文建议调用UpdateTarget.内在控制。我不知道在哪里执行此操作,但在方法中,尚未设置强制值(因此更新绑定还为时过早),而在值由 重置的情况下,属性值将保持原样,因此不会调用属性更改的回调(如本讨论中所暗示的那样)。TextBox.TextCoerceValueCallbackUpdateSourceValueCoerceValueCoerceValue

我想到的一种可能的解决方法是用SomeControl常规属性和实现替换依赖属性(因此即使值已被强制INotifyPropertyChanged,我也可以手动触发事件)。PropertyChanged但是,这意味着我不能再声明对该属性的绑定,因此这不是一个真正有用的解决方案。

0 投票
1 回答
288 浏览

function - 在 SASS 中强制一个值

我正在尝试在 SASS 中执行以下语句:

我试图让它编译成这样的结果,16em但我得到了"16em"

似乎有一个强制函数 coerce(num_units, den_units),但我不理解文档,它没有提供任何示例,当我尝试编译它时,它只是将函数作为字符串吐出。

谁能告诉我如何让这个功能工作?

0 投票
1 回答
1113 浏览

perl - 如何在 Moo 中使用 Types::Path::Tiny

我在这个网站上的第一个问题,我很快就来了。我是一名开发人员,我主要使用 Python 和 Perl。我充满激情,我真的很喜欢这种发展。

我的第一个问题是关于 Perl、Moo 和 Type::Tiny。当然,Type::Tiny 是一个非常适合与 Moo 一起使用的模块,但我将在另一个问题中回到这个主题。

我发现了 Moose 和 Moo 的 Types::Path::Tiny 模块强制,所以我尝试在我的类中创建一个属性目录,如文档中所述,因为我的项目在 Moose 中它可以工作,但是因为我搬到了 Moo ,它不再起作用:

在我的测试目录中:

错误是:

这是正常的,因为对于 Moo,强制是一个 coderef,所以我尝试了:

错误是:

如果我没有强迫:

对于这个简单的问题,我很抱歉,我一定很愚蠢并且错过了一些东西,但我看不出我在文档中可能遗漏了什么。

谢谢

0 投票
1 回答
1842 浏览

performance - Oracle:将 VARCHAR2 和 CLOB 强制为相同类型而不截断

在支持 MS SQL Server、MySQL 和 Oracle 的应用程序中,有一个包含以下相关列的表(此处显示的类型适用于 Oracle):

该应用程序在 ShortText 中存储 850 个字符或更少的值,在 LongText 中存储更长的值。我需要创建一个返回该数据的视图,无论它位于哪个列。这适用于 SQL Server 和 MySQL:

但是,在 Oracle 上,它会生成此错误:

...意味着 Oracle 不会将两列隐式转换为相同的类型,因此查询必须显式执行。不希望数据被截断,因此所使用的类型必须能够容纳与 CLOB 一样多的数据,据我所知(不是 Oracle 专家),仅意味着 CLOB,没有其他选择可用。

这适用于甲骨文:

但是,性能非常糟糕。直接返回 LongText 的查询需要 70-80 毫秒处理大约 9k 行,但上述构造需要 30 到 60,不可接受。

所以:

  1. 是否有任何其他 Oracle 类型我可以强制这两个列可以容纳与 CLOB 一样多的数据?理想情况下是更面向文本的东西,比如 MySQL 的 LONGTEXT 或 SQL Server 的 NTEXT(或者更好的是 NVARCHAR(MAX))?
  2. 我应该考虑其他任何方法吗?

一些细节,特别是@Guido Leenders 要求的细节:

0 投票
1 回答
84 浏览

wpf - 强制调用的时间比预期的要晚

为什么当我在文本框中输入文本时,在调用MainWindow.Float.Set之后调用 Coerce 函数?

输入文本后,我会期望:

OnValueCoerce -> OnValueChanged -> MainWindow.Float.Set

但我得到:

MainWindow.Float.Set -> OnValueCoerce -> OnValueChanged

...

0 投票
1 回答
1254 浏览

r - R将字符向量强制转换为字符和数字

我有一个向量:

我想将向量强制转换为数字,数字和字符串在哪里,字符串在哪里

可能吗?我该如何管理?

0 投票
1 回答
272 浏览

haskell - 具有与其 C 对应物相同的强制表示的 Haskell 类型?

如何确定 Haskell 类型在给定平台上是否具有等效的 Coercible 实例?

我刚刚在 GHC 7.8 中被告知Coercible,这似乎很棒。在这种情况下,我想解决我的具体问题的一个同样好的问题是:有没有办法询问 GHC 哪些类型对ab有一个Coercible a b实例(例如在当前平台上)?

在我看来,为了coerce :: Coercible a b => a -> b在与编译器和平台无关的程序中有用,需要知道——最好只在编译时,但也可能在编写代码时明确地知道——给定的Coercible a b实例是否存在于给定的平台上否则使用较慢的非noop回退(我猜是通过CPP)。

追问: GHC提供功能有意义吗

与财产coerceOrConvert f

  • coerce如果有Coercible a b当前 GHC 版本和平台的实例

  • f如果不

我意识到这对于普通类型类来说意义不大,但Coercible似乎远非普通,所以我很难说……</p>