In my opinion Python serves as a poor argument here. I tend to use Python
as a example of a grab-bag language that adds any feature anyone considers
useful - without considering the cost. An Anti-Go, if you will :)
Gustavo Niemeyer actually wrote this up pretty well:
https://blog.labix.org/2012/06/26/less-is-more-and-is-not-always-straightforward

So, from my perspective, if you tell me "Python did not have ternary
operators, but after long and hard discussions, they caved", what I'm
hearing is "even *Python* didn't really need them". ;)

(Disclaimer: This isn't meant as a dig at Python. I think Python is a great
language. But its design goals are very different from Go's)

On Wed, Aug 15, 2018 at 8:33 AM Sam Vilain <s...@vilain.net> wrote:

> I haven't seen all the discussion referenced, but I remember digging deep
> into the python language archives where Guido and others eventually
> relented and added ternaries (with the syntax "a if val else b"). I can't
> remember the argument which swung the consensus but the arguments against
> seem remarkably similar.
>
> Go does have a one-line ternary:
>
> var result = map[bool]string{false: "a", true: "b"}[test]
>
> It's less of a hack if you declare the lookup "table" separately.
>
> Sam
>
> On Aug 14, 2018 9:52 PM, Agniva De Sarker <agniva.quicksil...@gmail.com>
> wrote:
>
> Your answer is here -
> https://tip.golang.org/doc/faq#Does_Go_have_a_ternary_form.
>
>
> On Tuesday, 14 August 2018 22:13:37 UTC+5:30, Mark Volkmann wrote:
>
> I’m new to Go and I imagine the idea of adding a ternary operator to Go
> has been discussed many times. Rather than repeat that, can someone point
> me to a discussion about why Go doesn’t add this? I’m struggling to
> understand why it is desirable to write code like this:
>
> var color
> if temperature > 100 {
>     color = “red”
> } else {
>     color = “blue”
> }
>
> Instead of this:
>
> var color = temperature > 100 ? “red” : “blue”
>
> Is the ternary really so confusing that it justifies writing 6 lines of
> code instead of 1? I realize I could eliminate two lines like the
> following, but this isn’t a good idea if the values come from function
> calls since there would sometimes be needless function calls.
>
> var color = “blue”
> if temperature > 100 {
>     color = “red”
> }
>
> ---
> R. Mark Volkmann
> Object Computing, Inc.
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to