1

280 個の異なる要素を含むローカル マクロがありpeer_list、そのすべてが文字列です。used_listlocalに含まれる要素のサブセットを含む別のローカル マクロも呼び出しますpeer_list

の各要素について、peer_listその要素が local にあるかどうかをテストしたいと思いused_listます。要素が存在する場合はused_list破棄し、そうでない場合は別の一連の条件を実行したいと思います。

次のコードを使用しようとしましたが、うまくいきませんでした:

foreach peer in local peer_list {
    if `:list peer in local used_list' {
        * commands I wish to execute
    }
    else {
        * commands I wish to execute
    }
}

これを達成する別の方法についてアドバイスをいただければ幸いです。

4

1 に答える 1

5

コードが「機能していない」という意味ではなく、再現可能な例を提供していません。それにもかかわらず、あなたは正しい方向に進んでいるように見えます。

 local beasts frog toad newt unicorn griffin 
 local real frog toad newt 

 foreach b of local beasts { 
     if `: list b in real' { 
         di "`b' is real" 
     } 
    else di "`b' is fabulous" 
 } 

 frog is real
 toad is real
 newt is real
 unicorn is fabulous
 griffin is fabulous

同様のコードでよくあるバグは、異なるロケールでローカル マクロを定義して使用することです。

ofより明白なバグは、キーワードnotが必要なことですin。あなたが持っているものは合法ですが、あなたが望むものではありません。比較

foreach b in local beasts {
    di "`b'"
}

local
beasts
于 2014-06-27T16:25:38.897 に答える