- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 Win32 上运行良好的 DUnitX 测试套件。但是当我尝试为 Win64 编译它时,此行会产生编译错误:
Assert.AreEqual(4, Length(r.Values));
[dcc64 错误] ...: E2532 无法从方法“AreEqual”的不同参数类型推断泛型类型参数
r.Values 定义为:
Type TIntegers = TArray<Integer>
Assert.AreEqual 有不同的重载实现,而 dcc64 无法选择正确的实现...好吧,但是为什么呢?为什么 dcc32 可以毫无问题地编译它?
我唯一的线索是,如果我将鼠标悬停,Delphi 会告诉我 Length 的类型为 System.Smallint。没有带有 Smallint 参数的 Assert.AreEqual 实现...果然,如果我将其转换为 Integer,dcc64 将编译它。
但这让我很烦恼。如果我查看 System.pas 单元,我可以看到 DynArraySetLength 采用 NativeInt 参数...一个 64 位整数(我期望无符号,但不确定)。那么为什么 Length 应该返回一个 16 位有符号整数呢?这似乎是等待发生的麻烦,对吧?
我错过了什么?
最佳答案
在 64 位中,TArray 的长度类型为 Int64
。据我所知,没有 AreEqual
Int64
过载,因此它尝试使用通用版本:AreEqual<>
。但从参数来看,似乎无法决定是哪一个。
所以在 Win64 中,执行以下操作:
Assert.AreEqual<Int64>(4, Length(r.Values));
或
Assert.AreEqual(4, Integer(Length(r.Values)));
后者当然是最简单的,因为它应该可以在 Win32 和 Win64 中工作,但可能无法处理非常大的数组。
<小时/>FWIW,Length
不返回Smallint
。但对于平台之间不同的函数,尤其是“编译器魔法”函数,如 Length
,这样的(错误的)信息可能会发生。这是 IDE 的问题,而不是编译器的问题。
正如 @RemyLebeau 所说,使用 NativeInt
可能更容易反而。这应该适用于 Win32 和 Win64,如 NativeInt
是 Int32
在 Win32 和 Int64
中在Win64中,这也是_DynArrayLength
返回:
Assert.AreEqual<NativeInt>(4, Length(r.Values));
关于delphi - 动态数组长度的32位和64位不同类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456395/
将 KLV 字符串拆分为键、长度、值作为元素的列表/元组的更有效方法是什么? 为了添加一点背景,前 3 位数字作为键,接下来的 2 位表示值的长度。 我已经能够使用以下代码解决该问题。但我不认为我的代
首先,我试图从文件中提取视频持续时间,然后在无需实际上传文件的情况下显示它。 当用户选择视频时 - 信息将显示在其下方,包括文件名、文件大小、文件类型。不管我的技能多么糟糕 - 我无法显示持续时间。我
我是 Scala 编程新手,这是我的问题:如何计算每行的字符串数量?我的数据框由一列 Array[String] 类型组成。 friendsDF: org.apache.spark.sql.DataF
我有一个React Web应用程序(create-react-app),该应用程序使用react-hook-forms上传歌曲并使用axios将其发送到我的Node / express服务器。 我想确
如果给你一个网络掩码(例如 255.255.255.0),你如何在 Java 中获得它的长度/位(例如 8)? 最佳答案 如果您想找出整数低端有多少个零位,请尝试 Integer.numberOfTr
我需要使用 jQuery 获取 div 数量的长度。 我可以得到它,但在两个单击事件中声明变量,但这似乎是错误的,然后我还需要使用它来根据数字显示隐藏按钮。我觉得我不必将代码加倍。 在这里摆弄 htt
我对此感到非常绝望,到目前为止我在 www 上找不到任何东西。 情况如下: 我正在使用 Python。 我有 3 个数组:x 坐标、y 坐标和半径。 我想使用给定的 x 和 y 坐标创建散点图。 到目
我有一个表单,我通过 jQuery 的加载函数动态添加新的输入和选择元素。有时加载的元素故意为空,在这种情况下我想隐藏容器 div,这样它就不会破坏样式。 问题是,我似乎无法计算加载的元素,因此不知道
我决定通过替换来使我的代码更清晰 if (wrappedSet.length > 0) 类似 if (wrappedSet.exists()) 是否有任何 native jq 函数可以实现此目的?或者
简单的问题。如果我有一个如下表: CREATE TABLE `exampletable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `textfield`
我正在使用经典 ASP/MySQL 将长用户输入插入到我的数据库中,该输入是从富文本编辑器生成的。该列设置为 LONG-TEXT。 作为参数化查询(准备语句)的新手,我不确定用于此特定查询的数据长度。
我正在获取 Stripe 交易费用的值(value)并通过禁用的文本字段显示它。 由于输入文本域,句子出现较大空隙 This is the amount $3.50____________that n
我有一个 div,其背景图像的大小设置为包含。但是,图像是视网膜计算机(Macbook Pro 等)的双分辨率图像,所以我希望能够以某种方式让页面知道即使我说的是背景大小:包含 200x200 图像,
我正在开发一个具有“已保存”和“已完成”模块的小部件。当我删除元素时,它会从 dom 中删除/淡化它,但是当我将其标记为完成时,它会将其克隆到已完成的选项卡。这工作很棒,但顶部括号内的数字不适合我。这
我有一个来自 json 提要的数组,我知道在 jArray 中有一个联盟,但我需要计算出该数组的计数,以防稍后将第二个添加到提要中。目前 log cat 没有注销“teamFeedStructure”
目标:给定一个混合类型的数组,确定每个级别的元素数量。如果同一层有两个子数组,则它们的每个元素都计入该层元素的总数。 方法: Array.prototype.elementsAtLevels = fu
我需要帮助为 Java 中的单链表制作 int size(); 方法。 这是我目前所拥有的,但它没有返回正确的列表大小。 public int size() { int size = 0;
我正在为学校作业创建一个文件服务器应用程序。我目前拥有的是一个简单的 Client 类,它通过 TCP 发送图像,还有一个 Server 类接收图像并将其写入文件。 这是我的客户端代码 import
我有这对功能 (,) length :: Foldable t => t a -> b -> (Int, b) 和, head :: [a] -> a 我想了解的类型 (,) length he
我正在GitHub Pages上使用Jekyll来构建博客,并希望获得传递给YAML前题中Liquid模板的page.title字符串的长度,该字符串在每个帖子的YAML主题中。我还没有找到一种简单的
我是一名优秀的程序员,十分优秀!