[swift-users] Usage of final let?

Kevin Greene kgreenek at gmail.com
Mon Jun 13 21:55:39 CDT 2016


I tried making a simple example of a superclass with a let variable, and a
subclass that sets that variable to something different in its initializer.
It didn't compile. The let variable was not marked final either. So I don't
think adding final actually does anything for a let variable because there
is no way for a subclass to change its value anyways. Right?

On Mon, Jun 13, 2016 at 7:05 PM, Azuan via swift-users <
swift-users at swift.org> wrote:

> I do undertand the difference. But would someone be kind enough to
> enlighten me with the correct example on how would you override a let
> variable in it’s subclasses and that you can prevent it by using the final
> modifier?
>
>
> Regards,
> Azuan
>
> On 14 June 2016 at 9:59:16 AM, Jens Alfke (jens at mooseyard.com) wrote:
>
>
> On Jun 12, 2016, at 10:43 PM, Azuan via swift-users <swift-users at swift.org>
> wrote:
>
> Read in docs, saying that by using final on variables, you can’t override
> it in it’s subclass. Using `final var` makes sense to me. But what is the
> purpose of using `final let` since by using `let`, it is already an
> immutable variable anyway.
>
>
> Immutable isn’t the same as non-overridable. Immutable just means that its
> value *in a single instance* can’t be changed after initialization. But
> there’s nothing stopping you from creating a subclass that has a different
> value for that constant.
>
> —Jens
>
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160613/22b38c39/attachment.html>


More information about the swift-users mailing list