在F#中,数组协变 [英] Array covariance in F#

查看:131
本文介绍了在F#中,数组协变的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于.NET数组是协变的,在C#以下工作:

  VAR strArray =新的字符串[0];
[对象] objArray = strArray;
 

在F#中,给出一个数组,'T [] ,这将是将其转换为 OBJ [] ,而无需重新创建阵列(例如, 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆