CLion教程-内联

重构 | 内联
<选中内容的上下文菜单>
| 重构 | 内联CtrlAlt+N
CLion 提供以下内联重构:
- 内联常量。这个重构是 提取常量 重构的相反操作。
- 内联宏定义。这个重构是 提取宏定义 重构的相反操作。
- 内联类型定义。这个重构是 提取类型定义 重构的相反操作。
- 内联参数。这个重构是 提取参数 重构的相反操作。
- 内联函数。这个重构是 提取函数 重构的相反操作。
使用内联重构,你可以直接在编辑器中展开宏。
示例
C/C++
之前 | 之后 |
---|---|
//This function will be inlined int fdiff(int x, int y, int factor); int main(){ int x = 10; int y = 9; int z = fdiff(x, y, 2); return 0; } int fdiff(int x, int y, int factor) { return (x-y) * factor; } | int main(){ int x = 10; int y = 9; int z = (x - y) * 2; return 0; } |
Objective-C/C++
之前 | 之后 |
---|---|
int main (int argc, const char * argv[]) { @autoreleasepool { float result; //The third parameter will be inlined result = mulfunc(10, 20, 2); } return 0; } float mulfunc(int x, int y, int factor) { return x * y * factor; } | int main (int argc, const char * argv[]) { @autoreleasepool { float result; result = mulfunc(10, 20); } return 0; } float mulfunc(int x, int y) { return x * y * 2; } |
Python
之前 | 之后 |
---|---|
import math class Solver: def demo(self): a = 3 b = 25 c = 46 #This variable will be inlined return_type_of_sqrt = math.sqrt(b ** 2 - 4 * a * c) root1 = (-b + return_type_of_sqrt) / (2*a) root2 = (-b - return_type_of_sqrt) / (2*a) print(root1,root2) Solver().demo() | import math class Solver: def demo(self): a = 3 b = 25 c = 46 root1 = (-b + math.sqrt(b**2 - 4*a*c)) / (2*a) root2 = (-b - math.sqrt(b**2 - 4*a*c)) / (2*a) print(root1,root2) Solver().demo() |
JavaScript
之前 | 之后 |
---|---|
function GetCookie (name) { var arg = name + "="; var alen = arg.length; //This variable will be inlined var clen = document.cookie.length; var i = 0; while (i != clen) { var j = i + clen; ... } } | function GetCookie (name) { var arg = name + "="; var alen = arg.length; var i = 0; while (i != document.cookie.length) { var j = i + document.cookie.length; ... } } |
执行内联重构
- 将插入符号放置在要内联的符号上。
执行以下操作之一:
- 在主菜单或上下文菜单中,选择 Refactor | Inline。
- 按下 CtrlAlt+N 键。
- 在与所选符号相对应的内联对话框中,确认内联重构,或在“查找重构预览”中查看所选符号的使用情况。