簡體   English   中英

如何在const&參數上使用QString :: replace?

[英]How to use QString::replace on a const& parameter?

以非破壞性方式調用QString::replace的最佳方法是什么?

我有一個將const QString&作為參數的函數,所以我不能直接調用調用replace因為此函數會修改對象(與remove相同)。
我想在參數上鏈接調用,並將其用作表達式:

return myString.replace(QRegExp("\\s+"), "_").remove("someSuffix");

當然,我可以更改函數定義以按值而不是引用采用QString,但是我不喜歡這種解決方案。 后來人們可能想知道為什么我們不像其他參數那樣通過引用傳遞。

我也可以制作本地副本,但是還有其他實用/干凈的方法嗎?

您可以創建一個臨時文件並對其進行操作:

return QString(argument).replace(QRegExp("\\s+"), "_").remove("someSuffix");

但是,我認為按值接受參數沒有什么不好。 您正在以一種或另一種方式復制自變量,並且按值接受顯然會向用戶表明這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM