---
title: ColumnProtocol
framework: tabulardata
role: symbol
role_heading: Protocol
path: tabulardata/columnprotocol
---

# ColumnProtocol

A type that represents a column.

## Declaration

```swift
protocol ColumnProtocol<Element> : BidirectionalCollection
```

## Overview

Overview ColumnProtocol defines the common functionality for typed column types. Its type-erased counterpart is AnyColumnProtocol.

## Topics

### Inspecting a Column Type

- [name](tabulardata/columnprotocol/name.md)

### Generating a Column by Adding Two Columns

- [+(_:_:)](tabulardata/columnprotocol/+(_:_:)-yc11.md)
- [+(_:_:)](tabulardata/+(_:_:)-1i7oh.md)
- [+(_:_:)](tabulardata/+(_:_:)-3exmp.md)

### Generating a Column by Subtracting Two Columns

- [-(_:_:)](tabulardata/columnprotocol/-(_:_:)-36zol.md)
- [-(_:_:)](tabulardata/-(_:_:)-25cs6.md)
- [-(_:_:)](tabulardata/-(_:_:)-95yoe.md)

### Generating a Column by Multiplying Two Columns

- [*(_:_:)](tabulardata/columnprotocol/*(_:_:)-9db1q.md)
- [*(_:_:)](tabulardata/*(_:_:)-l9r3.md)
- [*(_:_:)](tabulardata/*(_:_:)-2toor.md)

### Generating a Column by Dividing Two Columns

- [/(_:_:)](tabulardata/columnprotocol/_(_:_:)-922ku.md)
- [/(_:_:)](tabulardata/_(_:_:)-9v3nw.md)
- [/(_:_:)](tabulardata/_(_:_:)-4igyw.md)
- [/(_:_:)](tabulardata/columnprotocol/_(_:_:)-2urf0.md)
- [/(_:_:)](tabulardata/_(_:_:)-4pr65.md)
- [/(_:_:)](tabulardata/_(_:_:)-58kg6.md)

### Generating a Column by Combining a Value

- [+(_:_:)](tabulardata/columnprotocol/+(_:_:)-39k8v.md)
- [+(_:_:)](tabulardata/columnprotocol/+(_:_:)-94kiv.md)
- [-(_:_:)](tabulardata/columnprotocol/-(_:_:)-4fynh.md)
- [-(_:_:)](tabulardata/columnprotocol/-(_:_:)-6up21.md)
- [*(_:_:)](tabulardata/columnprotocol/*(_:_:)-17vqd.md)
- [*(_:_:)](tabulardata/columnprotocol/*(_:_:)-3d6lu.md)
- [/(_:_:)](tabulardata/columnprotocol/_(_:_:)-4a632.md)
- [/(_:_:)](tabulardata/columnprotocol/_(_:_:)-7pe3t.md)
- [/(_:_:)](tabulardata/columnprotocol/_(_:_:)-6zigz.md)
- [/(_:_:)](tabulardata/columnprotocol/_(_:_:)-4iv15.md)

### Comparing a Column with a Value

- [==(_:_:)](tabulardata/columnprotocol/==(_:_:)-5jc0x.md)
- [==(_:_:)](tabulardata/columnprotocol/==(_:_:)-4hx04.md)
- [!=(_:_:)](tabulardata/columnprotocol/!=(_:_:)-557vb.md)
- [!=(_:_:)](tabulardata/columnprotocol/!=(_:_:)-72ddh.md)

### Operators

- [>(_:_:)](tabulardata/columnprotocol/_(_:_:)-68any.md)
- [<(_:_:)](tabulardata/columnprotocol/_(_:_:)-70vl1.md)
- [<(_:_:)](tabulardata/columnprotocol/_(_:_:)-7gy2j.md)
- [>(_:_:)](tabulardata/columnprotocol/_(_:_:)-9rct2.md)
- [<=(_:_:)](tabulardata/columnprotocol/_=(_:_:)-17m6l.md)
- [>=(_:_:)](tabulardata/columnprotocol/_=(_:_:)-2w8gt.md)
- [>=(_:_:)](tabulardata/columnprotocol/_=(_:_:)-8jak4.md)
- [<=(_:_:)](tabulardata/columnprotocol/_=(_:_:)-9wr8s.md)

## Relationships

### Inherits From

- [BidirectionalCollection](swift/bidirectionalcollection.md)
- [Collection](swift/collection.md)
- [Sequence](swift/sequence.md)

### Inherited By

- [OptionalColumnProtocol](tabulardata/optionalcolumnprotocol.md)

### Conforming Types

- [Column](tabulardata/column.md)
- [ColumnSlice](tabulardata/columnslice.md)
- [DiscontiguousColumnSlice](tabulardata/discontiguouscolumnslice.md)
- [FilledColumn](tabulardata/filledcolumn.md)

## See Also

### Typed Columns

- [Column](tabulardata/column.md)
- [ColumnSlice](tabulardata/columnslice.md)
- [FilledColumn](tabulardata/filledcolumn.md)
- [DiscontiguousColumnSlice](tabulardata/discontiguouscolumnslice.md)
- [OptionalColumnProtocol](tabulardata/optionalcolumnprotocol.md)
