# AbstractArrayStyle{Any} versus AbstractArrayStyle{N} broadcast style

**URL:** <https://discourse.julialang.org/t/abstractarraystyle-any-versus-abstractarraystyle-n-broadcast-style/124526>\
**Category:** General Usage\
**Tags:** broadcast, array, arrays, broadcasting\
**Created:** [January 8, 2025, 9:24am UTC](https://discourse.julialang.org/t/abstractarraystyle-any-versus-abstractarraystyle-n-broadcast-style/124526 "2025-01-08T09:24:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [January 8, 2025, 9:24am UTC](https://discourse.julialang.org/t/abstractarraystyle-any-versus-abstractarraystyle-n-broadcast-style/124526/1 "2025-01-08T09:24:10Z")

</div>

Suppose a package defines an array type `SomeArray` which, like `Array`, supports arbitrary dimensionality:

```julia
struct SomeArray{N} <: AbstractArray{Float32, N} end # the element type doesn't matter here, it's merely an example

```

When defining the broadcasting style, how to decide whether to make it subtype `AbstractArrayStyle{Any}` or to make it subtype `AbstractArrayStyle{N}`? What’s the difference between the two options? Are there any implications for performance or safety? Is there any significance to the choice at all?

Relevant docs:

- [`Base.Broadcast.AbstractArrayStyle`](https://docs.julialang.org/en/v1/base/arrays/#Base.Broadcast.AbstractArrayStyle)
- [Broadcast Styles](https://docs.julialang.org/en/v1/manual/interfaces/#Broadcast-Styles)

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [January 8, 2025, 8:40pm UTC](https://discourse.julialang.org/t/abstractarraystyle-any-versus-abstractarraystyle-n-broadcast-style/124526/2 "2025-01-08T20:40:33Z")

</div>

Looking at the [source](https://github.com/JuliaLang/julia/blob/v1.11.2/base/broadcast.jl), `AbstractArrayStyle{N}` is preferable to `AbstractArrayStyle{Any}` when either is an option.
