OptionsPattern與復(fù)合左側(cè)的規(guī)則不匹配
OptionsPattern是在Mathematica v6中引入的,因此我最終決定試一試程序:Clear@foo;foo[options:OptionsPattern[]]:={options}foo[k2-gt;3]輸出:{k2-gt;3]
解答動(dòng)態(tài)
整個(gè)問題基于一個(gè)錯(cuò)誤的前提,即舊式的選擇僅僅是武斷的規(guī)則。事實(shí)并非如此,在過去,特殊OptionQ謂詞用于區(qū)分選項(xiàng)和一般規(guī)則。
通過正確的選項(xiàng)測(cè)試,您的示例將看起來比如:
Clear@foo;foo[選項(xiàng)\uuuu規(guī)則]?OptionQ]:={options}foo[k2-gt;3] 它給出與OptionsPattern[]方法相同的輸出。
使用OptionsPattern[]時(shí),k2時(shí)的期權(quán)價(jià)值應(yīng)該也能用,所以在幕后有點(diǎn)像E
K2/:OptionValue@k2=3 哪個(gè)如果k2被f1替換,則失敗[k2]:您也會(huì)得到一個(gè)quot;error.
因此新系統(tǒng)的語法更簡(jiǎn)單,但通用性較差。- End
免責(zé)聲明:
本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。