[swift-evolution] Change Request: Make myString.hasPrefix("") and myString.hasSuffix("") return true

Chris Denter chris at duolingo.com
Mon Jul 18 12:36:53 CDT 2016


Hello –

Currently, the standard library String functions .hasPrefix() and
.hasSuffix() will return false when given the empty string as input:

$ swift
  1> "".hasPrefix("")
$R0: Bool = false
  2> "foo".hasPrefix("")
$R1: Bool = false
  3> "foo".hasSuffix("")
$R2: Bool = false


This feels unexpected. The reason the methods behave this way seems to be a
leaked implementation detail
<https://twitter.com/cdntr/status/755059959713427456>.
Some languages, such as Python, return True in these cases -- perhaps
motivated by the `someSet.contains(emptySet) == true` analogy.

The ship has sailed for NSString and Foundation, but we might want to bite
the bullet and fix this for Swift before 3.0 makes that much harder.

Thank you so much for your time,

    Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160718/d1ac9c4f/attachment.html>


More information about the swift-evolution mailing list