• shagie@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    Talking with a rubyist:

    • 3?"bar":"qux" only has the ternary expression as a valid parsing of ?
    • foo?"bar":"qux" fails because foo may be a method and foo? is also a valid method identifier.
    • foo ?"bar":"qux" fails because ?" uses the ? unary operator that makes the next character a string. So ?"bar" becomes the string " followed by what looks to be an identifier.

    And so…

    • ? character is a valid part of an identifier (but only at the end of a method name)
    • ?x unary operator to create a String from a character
    • expr?expr:expr ternary operator

    And so…

    puts "".empty? ? ?t:?f