例如CInt
与Int#
与CInt#
之间的关系是什么?
例如,如果我调用一个返回CInt
的外部函数,那么它是否已经构造为CInt#
(即,它是堆栈上的原始int
,而不是指向堆上包含int
)的东西的指针?
在这种情况下,CInt
和Int#
之间有什么区别?
如果我想尝试一下我可以使用的所有性能,从CInt
和Int#
以及CInt#
使用哪一个?
答案 0 :(得分:5)
我不认为有CInt#
这样的事情。
CInt
只是一种自定义类型,可以保证与C
良好匹配(请参阅the blurb at the top of this page了解更正式的内容)。它是盒装的,因此你可以获得性能。Int#
是一个"魔法" unboxed int。事实证明,它是does play well with the FFi,所以如果你想要所有的表现,请使用它。