これは機能します。
string = <div>foo</div><br /><div>bar</div><br />
ModifyText(string, {"<br\s\/?>": "REPLECED`r`n", "<div>": "<p>", "</div>": "</p>"}*)
msgbox % string
ModifyText(ByRef strHaystack, oParams*) {
for k, v in oParams
strHaystack := RegexReplace(strHaystack, k, v)
}
しかし、クラスメソッドで同じことをすると失敗します。クラス メソッドは、渡されたオブジェクトを受け取りません。
string = <div>foo</div><br /><div>bar</div><br />
o := new ByrefTest
o.ModifyText(string, {"<br\s\/?>": "REPLECED`r`n", "<div>": "<p>", "</div>": "</p>"}*)
msgbox % string
class ByrefTest
{
ModifyText(ByRef strHaystack, oParams*) {
for k, v in oParams
strHaystack := RegexReplace(strHaystack, k, v)
}
}
それはなぜです?
マニュアルは何かを暗示しているようです。
最後の物理パラメータが実際に割り当てられる値であるため、この構文はオブジェクトのプロパティを設定するときに使用できません。
しかし、この制限についてのようには聞こえません。