> Le 18 nov. 2017 à 17:13, Paul Cantrell via swift-evolution > <swift-evolution@swift.org> a écrit : > > >> On Nov 18, 2017, at 1:44 AM, Jean-Daniel <mail...@xenonium.com >> <mailto:mail...@xenonium.com>> wrote: >> >> >>> … >>> >>> In Ruby, `myObj.name()` is equivalent to `myObj.name`, and either works. In >>> Swift, I don’t see that it’s possible to make both work with Chris’s >>> proposal. >> >> IIUC, the goal is not to make swift look and behave the same as ruby or >> python, but to be able to use ruby or python object in a swift way (without >> indirect call and other nasty constructions). I don’t see requiring the >> .property syntax and prohibiting the .property() one as an issue. I would >> even say this is the thing to do, as it would make the swift code more >> understandable to Swift dev that are not used to Ruby. > > > It really wouldn’t. Zero-arg Ruby methods are a mixture of property-like > things that would certainly not use parens in Swift, and function-like things > that certainly would: > > // Idiomatic Swift: > post.author.name.reversed() > > // Swift bridging to Ruby… > > // …if no-args methods •must• use parens: > post.author().name().reverse() > > // …if no-args methods •can’t• use parens: > post.author.name.reverse > > If the goal is to make Swift mostly look like Swift even when bridging to > Ruby, then the bridge needs to support both access forms. > > Cheers, P
It’s unfortunate that we can’t know what is a property and what is a method, but if we can’t tell them appart, supporting both form seems reasonable.
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution