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 ?
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.Arrayis the non-generic base type (where you cannot use indexing and you can only get elements as objects)'T[]andarray<'T>mean exactly the same thing. They are the generic type which supports indexing and you get'Tvalues from it.
来源:https://stackoverflow.com/questions/16981185/f-what-is-arrayt