[swift-evolution] NSString.contains(_:) returns false for empty string argument
Dave Abrahams
dabrahams at apple.com
Sun Oct 2 13:59:10 CDT 2016
on Mon Sep 05 2016, Ole Begemann <swift-evolution at swift.org> wrote:
> Six weeks ago there was a discussion [1] (and a subsequent fix [2])
> about the behavior of `String.hasPrefix(_:)` and
> `String.hasSuffix(_:)` with empty string arguments. After the fix,
> `str.hasPrefix("")` always returns `true`.
>
> This leads to inconsistent behavior with the `NSString.contains(_:)`
> method, which returns `false` for an empty string argument:
>
> let str = "Hello"
> str.contains("") // returns false
>
> If `contains` were part of the stdlib like `hasPrefix` and `hasSuffix`
> are, I would consider this a bug. But `contains` comes from Foundation
> and I'm not sure how that changes things. Would it make sense to add a
> variant of `contains(_:)` to the stdlib and fix the behavior there?
It might be worth doing something for Swift 3.1
>
> I'm assuming it's too late for Swift 3 and it will be fixed with the
> String remodeling in Swift 4 anyway,
That's my plan.
> but I just noticed this and I thought I'd ask.
>
> Ole
>
> [1]: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160718/024630.html
> [2]: https://bugs.swift.org/browse/SR-2131
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
--
-Dave
More information about the swift-evolution
mailing list