# Using the end keyword as a function argument

**URL:** <https://discourse.julialang.org/t/using-the-end-keyword-as-a-function-argument/96615>\
**Category:** General Usage\
**Tags:** function, keywords, keyword-arguments\
**Created:** [March 26, 2023, 12:53am UTC](https://discourse.julialang.org/t/using-the-end-keyword-as-a-function-argument/96615 "2023-03-26T00:53:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![SantiagoOrtiz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/santiagoortiz/32/25378_2.png) [@SantiagoOrtiz](https://discourse.julialang.org/u/SantiagoOrtiz)\
**Post date:** [March 26, 2023, 12:53am UTC](https://discourse.julialang.org/t/using-the-end-keyword-as-a-function-argument/96615/1 "2023-03-26T00:53:34Z")

</div>

Hi,

Is there any way to pass the _end_ keyword as an argument in a function or another index (i.e., -1 in python) to point to the last position of an array?

```julia
a = [1 2 3 4 5]

function f1(a, n)
    return a[n]
end

f1(a, end)
f1(a, -1)

```

Regards,  
Santiago

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [March 26, 2023, 1:07am UTC](https://discourse.julialang.org/t/using-the-end-keyword-as-a-function-argument/96615/2 "2023-03-26T01:07:19Z")

</div>

I don’t think so, but I’d approach this a little differently

```julia
a = [1 2 3 4 5]

function f1(a, n)
    return a[n]
end
function f1(a, n::function)
    return n(a)
end

f1(a, last)
# 5
f1(a, 2)
# 2

```

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [March 26, 2023, 1:29am UTC](https://discourse.julialang.org/t/using-the-end-keyword-as-a-function-argument/96615/3 "2023-03-26T01:29:32Z")

</div>

> [@SantiagoOrtiz](#):
>
> ```julia
> f1(a, end)
> f1(a, -1)
> 
> ```

just `f1(a, lastindex(a))`

---

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [March 26, 2023, 2:13am UTC](https://discourse.julialang.org/t/using-the-end-keyword-as-a-function-argument/96615/4 "2023-03-26T02:13:22Z")

</div>

This package has values `ibegin` and `iend` that you can pass around.

> **[GitHub - JuliaArrays/EndpointRanges.jl: Julia package for doing arithmetic on...](https://github.com/JuliaArrays/EndpointRanges.jl)**
>
> Julia package for doing arithmetic on endpoints in array indexing - GitHub - JuliaArrays/EndpointRanges.jl: Julia package for doing arithmetic on endpoints in array indexing
