mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-28 03:07:24 +03:00
Add documentation on str::starts_with
Add documentation about a current footgun of `str::starts_with`
This commit is contained in:
committed by
GitHub
parent
6894f435d3
commit
f0c6f5a7fe
@@ -1160,6 +1160,12 @@ pub fn contains<'a, P: Pattern<'a>>(&'a self, pat: P) -> bool {
|
||||
/// The [pattern] can be a `&str`, [`char`], a slice of [`char`]s, or a
|
||||
/// function or closure that determines if a character matches.
|
||||
///
|
||||
/// Note that there is a footgun to this method when using a slice of [`char`]s.
|
||||
/// Some users may expect that a slice of chars will behave similarly to a `&str` with this method.
|
||||
/// That is not currently the case. When you pass a slice of [`char`]s to this method, it will return true
|
||||
/// if any of the [`char`]s in the slice is the first [`char`] of this string slice. It does not work for
|
||||
/// sequentially comparing a slice of [`char`]s to a string slice. See the second example below.
|
||||
///
|
||||
/// [`char`]: prim@char
|
||||
/// [pattern]: self::pattern
|
||||
///
|
||||
@@ -1171,6 +1177,14 @@ pub fn contains<'a, P: Pattern<'a>>(&'a self, pat: P) -> bool {
|
||||
/// assert!(bananas.starts_with("bana"));
|
||||
/// assert!(!bananas.starts_with("nana"));
|
||||
/// ```
|
||||
///
|
||||
/// ```
|
||||
/// let bananas = "bananas";
|
||||
///
|
||||
/// // Note that both of these assert successfully.
|
||||
/// assert!(bananas.starts_with(&['b', 'a', 'n', 'a']));
|
||||
/// assert!(bananas.starts_with(&['a', 'b', 'c', 'd']));
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub fn starts_with<'a, P: Pattern<'a>>(&'a self, pat: P) -> bool {
|
||||
pat.is_prefix_of(self)
|
||||
|
||||
Reference in New Issue
Block a user