在F#中,数组协变 [英] Array covariance in F#
本文介绍了在F#中,数组协变的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
由于.NET数组是协变的,在C#以下工作:
VAR strArray =新的字符串[0];
[对象] objArray = strArray;
在F#中,给出一个数组,'T []
,这将是将其转换为 OBJ [] $的最好办法C $ C>,而无需重新创建阵列(例如,
Array.map盒
)?我使用(盒>>拆箱)。
,但感觉马虎
解决方案
盒>>拆箱
似乎是个好主意; O(1),并做这项工作,显然。
还考虑不使用该CLR错功能。 ;)
Since .NET arrays are covariant, the following works in C#:
var strArray = new string[0];
object[] objArray = strArray;
In F#, given an array, 'T[]
, what would be the best way to convert it to obj[]
, without re-creating the array (e.g., Array.map box
)? I'm using (box >> unbox)
, but it feels sloppy.
解决方案
box >> unbox
seems like a good idea; O(1), and does the job, apparently.
Consider also not using this CLR mis-feature. ;)
这篇关于在F#中,数组协变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文