F# - What is array<'T>?

故事扮演 提交于 2019-12-06 01:18:23

问题


In this previous question I learnt that in F# an array<'T> is not the same as System.Array.

VS tells me that array<'T> inherits System.Array and has the full name Microsoft.FSharp.Core.array<_> and some additional Interfaces.

However MSDN says that array<'T> is a type abbreviation of System.Array. And that it has the notation arr.[i] to get and set items.

So for my lesson, is array<'T> a type abbreviation that includes type extensions and additional Interfaces? Where is the best place to look this up ?


回答1:


The type array<'T> is an abbreviation, but not for the base type System.Array but for another generic type that represents arrays in F#, which is written as 'T[].

This means that

  • System.Array is the non-generic base type (where you cannot use indexing and you can only get elements as objects)

  • 'T[] and array<'T> mean exactly the same thing. They are the generic type which supports indexing and you get 'T values from it.



来源:https://stackoverflow.com/questions/16981185/f-what-is-arrayt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!