---
title: MTLArrayType
framework: metal
role: symbol
role_heading: Class
path: metal/mtlarraytype
---

# MTLArrayType

A description of an array.

## Declaration

```swift
class MTLArrayType
```

## Overview

Overview An MTLArrayType instance provides details about an array parameter. Don’t create MTLArrayType instances directly; other reflection instances contain properties to determine if a parameter is an array and to obtain the MTLArrayType instance that describes the array.

## Topics

### Describing the array elements

- [arrayLength](metal/mtlarraytype/arraylength.md)
- [elementType](metal/mtlarraytype/elementtype.md)
- [stride](metal/mtlarraytype/stride.md)
- [argumentIndexStride](metal/mtlarraytype/argumentindexstride.md)

### Obtaining details for complex array elements

- [element()](metal/mtlarraytype/element().md)
- [elementStructType()](metal/mtlarraytype/elementstructtype().md)
- [elementPointerType()](metal/mtlarraytype/elementpointertype().md)
- [elementTextureReferenceType()](metal/mtlarraytype/elementtexturereferencetype().md)

### Instance Methods

- [elementTensorReferenceType()](metal/mtlarraytype/elementtensorreferencetype().md)

## Relationships

### Inherits From

- [MTLType](metal/mtltype.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Shader types

- [MTLType](metal/mtltype.md)
- [MTLDataType](metal/mtldatatype.md)
- [MTLStructType](metal/mtlstructtype.md)
- [MTLStructMember](metal/mtlstructmember.md)
- [MTLPointerType](metal/mtlpointertype.md)
- [MTLTextureReferenceType](metal/mtltexturereferencetype.md)
