<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">That was my point... `foo` doesn’t have a `T: Numeric` version, therefore when it calls `isNumeric` the compiler has to call the version that always return false. `bar` is overloaded with both a&nbsp;<span style="background-color: rgba(255, 255, 255, 0);">`T` and a&nbsp;`T: Numeric` version, so there the compiler can call the most appropriate version of `isNumeric`.</span><div><br></div><div>- Dave Sweeris</div><div><br><div>On Oct 5, 2017, at 01:49, Alex Blewitt &lt;<a href="mailto:alblue@apple.com">alblue@apple.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html; charset=utf-8">I think one of your 'foo' or 'bar' is missing a &lt;T:Numeric&gt;, as otherwise the functions are identical ...<div class=""><br class=""></div><div class="">Alex<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 5 Oct 2017, at 09:23, David Sweeris via swift-users &lt;<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><br class=""><div class="">On Oct 4, 2017, at 18:30, Kevin Lundberg via swift-users &lt;<a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a>&gt; wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class="">
  
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252" class=""><p class="">Can you do something like this?</p><p class="">func isNumber&lt;T: Numeric&gt;(_ value: T) -&gt; Bool { return
      true }</p><p class="">func isNumber&lt;T&gt;(_ value: T) -&gt; Bool { return false }</p><p class="">I don't recall whether or not swift will pick the right version
      of the function here, or whether this can even compile (mac isnt
      open at the moment), but if you can overload functions in this way
      then it might be much nicer than checking for lots of concrete
      types.</p></div></blockquote><br class=""><div class="">It’ll compile, but you’ll get the wrong answer if it’s called from another generic function that isn’t similarly overloaded for `T` vs `T: Numeric`. I’m not at my computer right now, but IIRC, this is correct:</div><div class=""><br class=""></div><div class="">func foo&lt;T&gt; (_ value:T) -&gt; Bool {</div><div class="">&nbsp; &nbsp; return isNumber(value)</div><div class="">}</div><div class=""><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">func bar&lt;T&gt; (_ value:T) -&gt; Bool {</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; &nbsp; return isNumber(value)</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">}</span></div></div><div class=""><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">func bar&lt;T: Numeric&gt; (_ value:T) -&gt; Bool {</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; &nbsp; return isNumber(value)</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">}</span></div></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">isNumber(0) //true</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">isNumber(“”) //false</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">foo(0) //false</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">foo(“”) //false</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">bar(0) //true</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">bar(“”) //false</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class=""><br class=""></span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">- Dave Sweeris</span></div></div>_______________________________________________<br class="">swift-users mailing list<br class=""><a href="mailto:swift-users@swift.org" class="">swift-users@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-users">https://lists.swift.org/mailman/listinfo/swift-users</a><br class=""></div></blockquote></div><br class=""></div></div></blockquote></div></body></html>