编写复杂的函数,最佳实践,语义

时间:2017-08-26 16:29:53

标签: c++ qt

我有以下功能:

ui->user->setCurrentIndex(ui->user->findText(modelSuppliers->record(index.row()).value(modelSuppliers->record(index.row()).fieldName(5)).toString()));

当选择表上的行时,它将下拉菜单的当前索引设置为关系表模型上的相应列。 我只是写了这个函数,只是看着它晕了。也许在一个月里,当我看到这件事时,我会呕吐。你如何处理这种声明。您是否会创建一个中间变量来保存函数的某些部分,例如

QString value=modelSuppliers->record(index.row()).fieldName(5)).toString();

并在原始函数中插入值?或者你只是不打扰?

1 个答案:

答案 0 :(得分:0)

分解代码时,代码变得更容易阅读:

auto record    = modelSuppliers->record(index.row());
auto fieldName = record.fieldName(5);
auto text      = record.value(fieldName).toString();
auto index     = ui->user->findText(text);

ui->user->setCurrentIndex(index);