https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2015-11-24T15:10:22Z
Ruby Issue Tracking System
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55056
2015-11-24T15:10:22Z
Hanmac (Hans Mackowiak)
hanmac@gmx.de
<ul></ul><p>why not:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="p">(</span><span class="n">x</span> <span class="o">=</span> <span class="n">some_long_expression</span><span class="p">)</span> <span class="p">?</span> <span class="n">x</span><span class="p">.</span><span class="nf">to_s</span> <span class="p">:</span> <span class="s1">'foobar'</span>
</code></pre>
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55065
2015-11-24T20:28:53Z
danielpclark (Daniel P. Clark)
6ftdan@gmail.com
<ul></ul><p><code>&</code> is associated more with proc. I think <code>_</code> would be closer to the kind of thing you're looking for.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="n">some_long_expression</span> <span class="o">=</span> <span class="ss">:baz</span>
<span class="n">_</span> <span class="p">?</span> <span class="n">_</span><span class="p">.</span><span class="nf">to_s</span> <span class="p">:</span> <span class="s1">'foobar'</span>
<span class="c1"># => "baz"</span>
</code></pre>
<p>Although I tried in-lining it with a semicolon and found that the <code>_</code> feature only works off of the previous' lines results. So the following won't work.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="ss">:buzz</span><span class="p">;</span> <span class="n">_</span> <span class="p">?</span> <span class="n">_</span><span class="p">.</span><span class="nf">to_s</span> <span class="p">:</span> <span class="s1">'foobar'</span>
<span class="c1"># => "foobar"</span>
</code></pre>
<p>And this doesn't work</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="n">x</span> <span class="o">=</span> <span class="mi">4</span>
<span class="ss">:fiz</span> <span class="p">?</span> <span class="n">_</span><span class="p">.</span><span class="nf">to_s</span> <span class="p">:</span> <span class="s1">'foobar'</span>
<span class="c1"># => "4"</span>
</code></pre>
<p>So if you don't mind putting your ternary operation on the next line you can just use <code>_</code></p>
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55079
2015-11-25T05:10:36Z
Hanmac (Hans Mackowiak)
hanmac@gmx.de
<ul></ul><p><a class="user active user-mention" href="https://bugs.ruby-lang.org/users/612">@daniel (Daniel Cavanagh)</a>: _ with previous line result is a feature of IRB and PRY not ruby itself</p>
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55080
2015-11-25T09:34:19Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul></ul><p>Maybe <code>some_long_expression&.to_s || 'foobar'</code> ?</p>
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55081
2015-11-25T10:06:36Z
Anonymous
<ul></ul><p>Hans Mackowiak wrote:</p>
<blockquote>
<p>why not:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="p">(</span><span class="n">x</span> <span class="o">=</span> <span class="n">some_long_expression</span><span class="p">)</span> <span class="p">?</span> <span class="n">x</span><span class="p">.</span><span class="nf">to_s</span> <span class="p">:</span> <span class="s1">'foobar'</span>
</code></pre>
</blockquote>
<p>think it's not good. Ruby 2.2.3p173 shows warning:</p>
<pre><code>warning: found = in conditional, should be ==
</code></pre>
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55082
2015-11-25T10:23:20Z
Anonymous
<ul></ul><p>Nobuyoshi Nakada wrote:</p>
<blockquote>
<p>Maybe <code>some_long_expression&.to_s || 'foobar'</code> ?</p>
</blockquote>
<p>@Nobuyoshi, thanx! safe navigation from 2.3 solves such tasks.</p>
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55086
2015-11-25T13:00:05Z
Hanmac (Hans Mackowiak)
hanmac@gmx.de
<ul></ul><p>Yurko Bregey wrote:</p>
<blockquote>
<p>Hans Mackowiak wrote:</p>
<blockquote>
<p>why not:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="p">(</span><span class="n">x</span> <span class="o">=</span> <span class="n">some_long_expression</span><span class="p">)</span> <span class="p">?</span> <span class="n">x</span><span class="p">.</span><span class="nf">to_s</span> <span class="p">:</span> <span class="s1">'foobar'</span>
</code></pre>
</blockquote>
<p>think it's not good. Ruby 2.2.3p173 shows warning:</p>
<pre><code>warning: found = in conditional, should be ==
</code></pre>
</blockquote>
<p>you might did something wrong because on "ruby 2.3.0dev (2015-11-25 trunk 52749) [x86_64-linux]" it doesn't show any warning for me</p>
Ruby master - Feature #11734: Improved ternary operator
https://bugs.ruby-lang.org/issues/11734?journal_id=55298
2015-12-07T07:52:27Z
ko1 (Koichi Sasada)
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li></ul>