[swift-evolution] Returning nothing

Ross O'Brien narrativium+swift at gmail.com
Thu Jul 21 12:09:10 CDT 2016


There's a difference between returning a void type and returning nothing.
An instance of Void is a catch-all 'something' which conforms to no
protocols, which can be quite useful with generic types.

On Thu, Jul 21, 2016 at 5:59 PM, Xiaodi Wu via swift-evolution <
swift-evolution at swift.org> wrote:

> Quite frankly, I think the ship has long sailed for renaming Void.
>
>
> On Thu, Jul 21, 2016 at 11:52 AM, Matthew Johnson via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>>
>>
>> Sent from my iPad
>>
>> > On Jul 21, 2016, at 11:42 AM, Daniel Steinberg via swift-evolution <
>> swift-evolution at swift.org> wrote:
>> >
>> > This may be a silly question - given that one of Swift’s design
>> principles is to be a language for new programmers and for APIs to read
>> like English phrases, should we replace the typealias of Void for the
>> return type () with Nothing.
>>
>> Nothing was one of the names considered for the bottom type that replaces
>> @noreturn (
>> https://github.com/apple/swift-evolution/blob/master/proposals/0102-noreturn-bottom-type.md).
>> I think it would be confusing to rename Void to Nothing.
>>
>> If we consider renaming it Unit is the obvious way to go (
>> https://en.m.wikipedia.org/wiki/Unit_type)
>>
>> >
>> > So
>> >
>> > f: ( input: Int) -> Void
>> >
>> > becomes
>> >
>> > f: ( input: Int) -> Nothing
>> >
>> > Instead of saying “f takes an Int and returns a Void” I read this as “f
>> takes an Int and returns nothing”.
>> >
>> > I’ve been using f:(input: Int) -> () because it’s easier to explain
>> than Void to non-experienced programmers. Experienced programmers have no
>> problem with Void. But Void seems to be something we’re using just because
>> we have for a while - like x++ and C-style for loops.
>> >
>> > Best,
>> >
>> > Daniel
>> > _______________________________________________
>> > swift-evolution mailing list
>> > swift-evolution at swift.org
>> > https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>
>
> _______________________________________________
> 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/20160721/3aa871a7/attachment.html>


More information about the swift-evolution mailing list