问题
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[]
andarray<'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