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
。