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_string
和std::basic_string_view
都被认为是字符串类。将要考虑的方法列表是固定的。
- IncludeStyle¶
指定使用哪种包含风格的字符串,llvm 或 google。默认为 llvm。
- AbseilStringsMatchHeader¶
Abseil 的
strings/match.h
位置。默认为absl/strings/match.h
。