abseil-string-find-str-contains¶
查找 s.find(...) == string::npos 比较(针对各种字符串类型)并建议替换为 absl::StrContains()。
这提高了可读性,并减少了意外混合不同字符串类型的 find() 和 npos 的可能性。
默认情况下,“字符串类型”包括 ::std::basic_string、::std::basic_string_view 和 ::absl::string_view。请参阅 StringLikeClasses 选项以更改此设置。
std::string s = "...";
if (s.find("Hello World") == std::string::npos) { /* do something */ }
absl::string_view a = "...";
if (absl::string_view::npos != a.find("Hello World")) { /* do something */ }
变为
std::string s = "...";
if (!absl::StrContains(s, "Hello World")) { /* do something */ }
absl::string_view a = "...";
if (absl::StrContains(a, "Hello World")) { /* do something */ }
选项¶
- StringLikeClasses¶
以分号分隔的字符串类型类名称列表。默认情况下包括
::std::basic_string、::std::basic_string_view和::absl::string_view。
- IncludeStyle¶
指定使用哪种包含风格的字符串,llvm 或 google。默认值为 llvm。
- AbseilStringsMatchHeader¶
Abseil 的
strings/match.h的位置。默认为absl/strings/match.h。