# show(\[io::IO = stdout\], x), the keyword argument is not at the end?

**URL:** <https://discourse.julialang.org/t/show-io-io-stdout-x-the-keyword-argument-is-not-at-the-end/108339>\
**Category:** General Usage\
**Tags:** question\
**Created:** [January 4, 2024, 1:00pm UTC](https://discourse.julialang.org/t/show-io-io-stdout-x-the-keyword-argument-is-not-at-the-end/108339 "2024-01-04T13:00:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jiang\_ming\_zhang](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jiang_ming_zhang/32/204063_2.png) [@jiang\_ming\_zhang](https://discourse.julialang.org/u/jiang_ming_zhang)\
**Post date:** [January 4, 2024, 1:00pm UTC](https://discourse.julialang.org/t/show-io-io-stdout-x-the-keyword-argument-is-not-at-the-end/108339/1 "2024-01-04T13:00:32Z")

</div>

```julia
help?> show
search: show showable showerror @show @showtime Cshort Cushort hasmethod searchsorted searchsortedlast searchsortedfirst

  show([io::IO = stdout], x)

  Write a text representation of a value x to the output stream io. New types T should overload show(io::IO, x::T). The representation used by show generally        
  includes Julia-specific formatting and type information, and should be parseable Julia code when possible.

  repr returns the output of show as a string.

```

I am confused. The square brackt means the argument ‘io’ has a default value, right? Is it also a keyword argument? A keyword argument should be placed to the right of the position arguments, right?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [January 4, 2024, 1:04pm UTC](https://discourse.julialang.org/t/show-io-io-stdout-x-the-keyword-argument-is-not-at-the-end/108339/2 "2024-01-04T13:04:33Z")

</div>

It’s not a keyword argument and the doc syntax isn’t actual Julia syntax. It means that the first argument, which happens to be named io, is optional and defaults to stdout.
