]> git.lizzy.rs Git - rust.git/blob - src/docs/manual_split_once.txt
Auto merge of #9421 - xphoniex:fix-#9420, r=giraffate
[rust.git] / src / docs / manual_split_once.txt
1 ### What it does
2 Checks for usages of `str::splitn(2, _)`
3
4 ### Why is this bad?
5 `split_once` is both clearer in intent and slightly more efficient.
6
7 ### Example
8 ```
9 let s = "key=value=add";
10 let (key, value) = s.splitn(2, '=').next_tuple()?;
11 let value = s.splitn(2, '=').nth(1)?;
12
13 let mut parts = s.splitn(2, '=');
14 let key = parts.next()?;
15 let value = parts.next()?;
16 ```
17
18 Use instead:
19 ```
20 let s = "key=value=add";
21 let (key, value) = s.split_once('=')?;
22 let value = s.split_once('=')?.1;
23
24 let (key, value) = s.split_once('=')?;
25 ```
26
27 ### Limitations
28 The multiple statement variant currently only detects `iter.next()?`/`iter.next().unwrap()`
29 in two separate `let` statements that immediately follow the `splitn()`