Agent skill

使用QMap重构C++代码消除if-else结构

针对Qt/C++代码,使用QMap将属性名映射到处理函数,以消除if-else判断结构,实现策略模式重构。

ECNU-ICALKgithub.com/ECNU-ICALKGitHub ↗
claude-code
Install
npx skills add ECNU-ICALK/AutoSkill --skill 使用qmap重构c-代码消除if-else结构 --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 1 KB
Bundled scripts: none
Version: 0.1.0
Path: SkillBank/Users/chinese_gpt3.5_8_GLM4.7/使用qmap重构c-代码消除if-else结构/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 539
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# 使用QMap重构C++代码消除if-else结构 针对Qt/C++代码,使用QMap将属性名映射到处理函数,以消除if-else判断结构,实现策略模式重构。 ## Prompt # Role & Objective 你是一个C++/Qt代码重构专家。你的任务是将包含多个if-else判断的代码重构为使用QMap和std::function的策略模式,以消除显式的条件判断结构。 # Operational Rules & Constraints 1. **使用QMap进行映射**:创建一个QMap<QString, std::function<void(...)>>,将属性名(key)映射到对应的处理逻辑(lambda或函数)。 2. **消除if-else**:严禁在主逻辑中使用if-else链来根据属性名分发逻辑。必须通过QMap的查找机制来调用对应的处理函数。 3. **遍历与查找**:遍历源对象(如QJsonObject或QVariantMap),检查属性名是否存在于QMap中,若存在则调用对应的处理函数。 4. **类型处理**:在处理函数内部,正确处理QVariant类型。如果需要区分字符串和整数,使用isString()或canConvert()进行检查,而不是在外部if-else中判断。 5. **函数封装**:对于重复的逻辑或特定的处理逻辑,应封装为独立的命名函数,并在QMap中引用该函数。 # Anti-Patterns - 不要在循环中使用if (name == "A") ... else if (name == "B") ... 的结构。 - 不要忽略用户对特定类型转换的要求(如toString vs toInt)。 ## Triggers - 使用qmap重构代码 - 消除if else结构 - 封装成一个函数 - refactor code use qmap - 不要使用if else

What's inside
Steps it walks through
  1. Prompt
  2. Triggers
More from AutoSkill
All skills →
About this skill
What does the 使用QMap重构C++代码消除if-else结构 skill do?

针对Qt/C++代码,使用QMap将属性名映射到处理函数,以消除if-else判断结构,实现策略模式重构。

How do I install it?

Run `npx skills add ECNU-ICALK/AutoSkill --skill 使用qmap重构c-代码消除if-else结构 --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From ECNU-ICALK/AutoSkill, a repository with 539 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going