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

指定使用哪种包含风格的字符串,llvmgoogle。默认值为 llvm

AbseilStringsMatchHeader

Abseil 的 strings/match.h 的位置。默认为 absl/strings/match.h