Why doesn't this statement work?
1>2 ? puts "true" : puts "false"
Here, I find that most ruby operators are like C with () parentheses having high priority. This code In C
1 > 2 ? printf("true") : printf("false")
executes successfully. Why is ruby code not working?
The error indicates that ternary operator has lower priority than method argument. Ruby parses around the first instance of
putsmethod up to:and looks if there is another argument, which should be preceded by a comma if there is any. But you have a colon continuing:
which cases a syntax error.