在我的代碼中,有時候會有一個很長的函數,爲了避免混淆局部變量,我會用一對大括號來包含細節,這樣局部變量對其餘部分將不可見代碼,例如:如何隱藏局部變量
bool pricing_deals()
{
//prepare deal type lookup table
vector<DealType> deal_types; // deal type lookup table
{
vector<DealType> deal_types_TRF;
vector<DealType> deal_types_DCI;
...
// code that prepare deal_types by merging deal_types_TRF and deal_types_DCI etc
}
// from now on deal_types_TRF and deal_types_DCI are invisible
//prepare ccy pair lookup table
vector<CcyPair> ccy_pairs; // ccy pair lookup table
{
// code that prepare ccy_pairs;
}
// from now on local variables preparing ccy_pairs are invisible
// real computation starts
...
}
我不知道這是一個很好的做法,還是有這樣做你會suggeset的其他方式?
p.s.在這種情況下,我不希望將其分解爲更小的函數,因爲子邏輯不太可能被其他人重用,而重構會導致大量參數被傳遞,這會增加複雜性。
你沒看到「請勿使用!」在[tag:coding-style]標籤上? – InternetAussie
這可能是一個標誌,你可以把它分解成更小的函數。 –
我不想重構更小的函數,因爲我在問題中更新了。 – athos