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
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to