首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Storable和Unbox之间转换

在Storable和Unbox之间转换
EN

Stack Overflow用户
提问于 2013-05-31 02:58:39
回答 3查看 601关注 0票数 4

由于this question的答案,我希望能够从Data.Vector.Unboxed.Unbox的实例构造Foreign.Storable.Storable的实例(反之亦然)。这个是可能的吗?

我所知道的最接近的是vector-th-unbox,但它只创建了一个不可装箱的实例。

EN

回答 3

Stack Overflow用户

发布于 2013-05-31 12:23:02

检查vector包。

使用Data.Vector.convert :: (Vector v a, Vector w a) => v a -> w a

票数 4
EN

Stack Overflow用户

发布于 2015-07-10 19:24:06

vivian已经回答了,您可以使用Data.Vector.Generic模块中提供的convert函数:http://hackage.haskell.org/package/vector/docs/Data-Vector-Generic.html#v:convert

票数 1
EN

Stack Overflow用户

发布于 2013-05-31 05:54:09

我可以想象一种从unbox到storable的非常麻烦的方式,但它确实是非常麻烦和低效的!事实上,在完成它之后,我实际上并不想把它写出来。这个概念就是你能用Unbox做的就是在一个未装箱的向量中使用它。因此,您可以使用单个元素初始化未装箱的向量。给定上述元素,您可以创建一个包含该元素的向量,然后通过邪恶撬开您的vector,并将这些字节直接用于可存储的实例。你可以同样邪恶地走另一条路。

但我不知道你为什么要这么做。默认情况下可以存储的大多数数据类型也是Unbox类型,反之亦然。而对于那些不是这样的人来说,派生Storable非常容易--无论是手动还是使用工具。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16843866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档