[swift-evolution] Change subscripts to use colons

Jacob Bandes-Storch jtbandes at gmail.com
Mon Jul 11 17:20:07 CDT 2016


When would you want to use this instead of something like `button[imageFor:
.normal]` ?

On Mon, Jul 11, 2016 at 3:00 PM, Tim Vermeulen via swift-evolution <
swift-evolution at swift.org> wrote:

> Slightly related to this, I would really love to have non-subscript
> parameterized properties. It would allow us to write
>
> button.image(for: .normal) = image
>
> instead of
>
> button.setImage(image, for: .normal)
>
> The same can be achieved through subscripts, but it’s not always as nice.
> It would bring subscripts and computed properties closer together, which
> also seems to be the goal of your proposal. Perhaps the two ideas could be
> combined?
>
> > Subscripts are a hybrid of properties and functions, since they have a
> parameter list, as well as getters and setters, so use of either symbol
> will be unusual in this case.
> >
> > However, I think a colon is more suitable, since it implies the
> possibility to set the value.
> >
> >
> > In the future, if we add throwing getters/ setters:
> >
> > subscript(_ position: Int) ->Element {
> > get {
> > return …
> > }
> > throwing set {
> > …
> > }
> > }
> >
> > Should this require ‘throws ->Element’? Using a colon also removes this
> potentially confusing case.
> >
> >
> > Thoughts?
> >
> >
> >
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160711/f1051b4a/attachment.html>


More information about the swift-evolution mailing list