Ah, my example was of course wrong again -.-

The caller should’ve looked like this (although I think you get the point):

```Swift
fetchUsers { users in
   // `users` is inferred to be an array of `User`s
}
```

Regards


On 4 Feb 2017, 16:41 +0100, ilija.tov...@me.com, wrote:
> Hey Stephen
>
> > You don't *have to* specify types at all. If you want to use PHP without 
> > verifying/requiring types, thats your prerogative, but given the recent 
> > improvements to allow scalar type hinting, I think it’s a mistake to say 
> > that *any* use of type hints is “not recommended”.
>
> Sure you don’t but then you loose all the benefits of specifying types. We 
> want typing but only if we don’t have to specify types all over the place. I 
> really dislike having to add PHPDocs everywhere just to get some proper 
> autocompletions.
>
> > I'm not sure if you've mixed up your terms of if I'm too tired but I don't 
> > understand what you mean here. The short arrow function *is* the callee, 
> > and that’s where you’re suggesting we shouldn’t use type hints.
>
> Sorry, that was confusing. I was thinking of a situation like this one:
>
> ```Swift
> func fetchUsers(callback: ([User]) -> Void) {
>     ...
> }
> ```
>
> So, the callee (`fetchUsers`) defines what the provided closure must look 
> like.
> The caller, on the other hand, doesn’t have to specify that again as you’re 
> just repeating yourself.
>
> ```Swift
> fetchUsers { user in
>    // `user` is inferred to be a `User` object
> }
> ```
>
> So I don’t think the burden of providing typing information should be on the 
> caller providing the closure.
>
> > The whole issue with that is that using a pipe character could make things 
> > much less clear/readable if the already established use of pipe for “type 
> > unions” (currently used in multi-catch) were to be implemented for general 
> > type hint usage.
> >
> > Note: I’m not saying it’s not possible, but it’s *much* less readable, and 
> > any “solution” just adds more characters, which is apparently the only 
> > reason to not use function($foo) => $foo in the first place.
>
> But again, that’s personal preference. I like short a precise and think it’s 
> more readable. Not everyone’s the same.
>
> >  For most people readability isn't just about the number of characters.
>
> A lot of the time it is. Brains are very good at recognising patterns, they 
> don’t need large keywords for that.
> As for me, I think it just adds clutter to the actual logic that I’m 
> interested in.
>

Reply via email to