abseil-string-find-startswith

检查 std::string::find()std::string::rfind()(以及对应的 std::string_view 方法)结果是否与 0 进行比较,并建议用 absl::StartsWith() 替换。这既是可读性问题,也是性能问题。

starts_with 在 C++20 中作为这些类型的内置函数添加。如果可用,建议启用 modernize-use-starts-ends-with 而不是此检查。

string s = "...";
if (s.find("Hello World") == 0) { /* do something */ }
if (s.rfind("Hello World", 0) == 0) { /* do something */ }

变成

string s = "...";
if (absl::StartsWith(s, "Hello World")) { /* do something */ }
if (absl::StartsWith(s, "Hello World")) { /* do something */ }

选项

StringLikeClasses

以分号分隔的字符串类名称列表。默认情况下,std::basic_stringstd::basic_string_view 都被认为是字符串类。将要考虑的方法列表是固定的。

IncludeStyle

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

AbseilStringsMatchHeader

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