CLion教程-提取参数
提取参数重构用于向函数声明中添加一个新参数,并相应地更新函数调用。
提取参数使用默认类型值或变量初始化的值。
以下演示说明了提取参数重构的用法,以及提取函数、提取 lambda 参数和Live 模板:
提取参数
- 将光标放在要替换为参数的表达式或变量声明内。
- 按下 CtrlAlt0P 或选择主菜单或上下文菜单中的 Refactor | Extract | Parameter。
- 如果在当前光标位置检测到多个表达式,请从列表中选择所需的表达式:
在打开的对话框中:
- 在 Name 字段中指定参数名称。
- 如果在函数体内找到了表达式的多个出现,则可以选择仅替换所选的出现或将所有找到的出现替换为对新参数的引用。使用“Replace all occurrences”复选框指定您的意图。
- 预览并应用更改。
示例
C/C++
Before | After |
---|---|
int fdiff (int x, int y); int main(){ int x = 10; int y = 9; int z = fdiff(x, y); return 0; } int fdiff (int x, int y){ //'2' will be extracted into the 'factor' parameter return (x-y)*2; } | 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; } |
Objective-C/C++
Before | After |
---|---|
int main (int argc, const char * argv[]) { @autoreleasepool { float result; result = mulfunc(10, 20); } return 0; } float mulfunc(int x, int y) { //'2' will be extracted into the 'factor' parameter return x * y * 2; } | int main (int argc, const char * argv[]) { @autoreleasepool { float result; result = mulfunc(10, 20, 2); } return 0; } float mulfunc(int x, int y, int factor) { return x * y * factor; } |
Python
Before | After |
---|---|
def print_test(self): # "test" will be extracted into a parameter print "test" | def print_test(self,test): print test |
JavaScript
Before | After |
---|---|
function calculate_sum(i) { //'1' will be extracted into an optional parameter alert('Adding ' + 1 + ' to ' + i); return 1 + i; } function show_sum() { alert('Result: ' + calculate_sum(5)); } | function calculate_sum(i, i2 = 1) { alert('Adding ' + i2 + ' to ' + i); return i2 + i; } function show_sum() { alert('Result: ' + calculate_sum(5)); } |