12
A
答えて
7
重要な発言を見つけるように見えることができます:それは、そのようなトリックの必要性が非常に頻繁に(少ない変数の意味を誤解した結果として)XY-問題であることを起こることが判明しました。通常、実際の使用はありません。実際にはこれを使用する場合があります(少ない場合はとなります)。はデフォルト値を定義します。下のトリックを使用する前に、それがsomething else you want actuallyでないことを確認してください。
あなたはそれがすでに定義することができ、同じスコープ(すなわちグローバルまたはローカル)のために、このような変数を提供する必要がある場合には(1.4.0以降)非常に簡単です:
@bar: 41; // comment/uncomment to test
.define-bar-if-not-defined() {@bar: 42}
.define-bar-if-not-defined(); // exposes a variable only if it's not already in this scope
#using-global-bar {
global-bar: @bar;
}
#using-local-bar {
@bar: 43; // comment/uncomment to test
.define-bar-if-not-defined();
local-bar: @bar;
}
しかし、このメソッドは、ローカルスコープで使用されるグローバル/親スコープ変数に使用しようとすると機能しません(元の変数がどのスコープから来る可能性があるのかわからないときはジェネリックメソッドが必要な場合には問題があります) :
#using-unknown-bar-in-local-scope {
// ... some code ...
.define-bar-if-not-defined(); // won't override local @bar (if any) but always overrides global and parent scope @bar
bar: @bar;
}
その場合、私はまっすぐな解決策を知らない(たとえば、ガード表現で使用できるインラインJavaScriptのハックを除いて)
関連する問題
- 1. 値がまだ設定されていない場合にのみ、値を設定してください
- 2. 変数が設定されていない場合、変数が設定されるのを待ちます
- 3. PHPデフォルト値にフォールバックしない場合、オプションが設定されているか確認してください
- 4. まだ設定されていない場合は、webstconfigにconnectionstringを追加してください。
- 5. 環境変数に応じてuWSGI設定を設定してください
- 6. request.get()がパラメータが設定されていない場合にフィルタ
- 7. アプリケーションによって設定されていない場合はApacheヘッダーを追加してください。
- 8. アップルペイオプションがまだ設定されていない場合は隠しオプション。
- 9. 環境変数をtmuxステータスに設定してください
- 10. 既に設定されている場合、CMakeのフラグ値を変更してください
- 11. コントロールが表示されない場合は、値をnullに設定してください(VBAにアクセス)
- 12. 所有者が設定されていない場合のループバック
- 13. HMENUのIDが設定されていない場合、
- 14. SqlとPHPが設定されていない場合
- 15. Log4netが正しく設定されていない場合の例外
- 16. 他の変数が設定されている場合、クラスの1つの変数を設定しますか?
- 17. cmake変数がユーザーによって変更されていない場合は、それを設定します
- 18. 変数のいずれかがNoneに設定されていることを確認してください。
- 19. GCPの環境変数を設定してください
- 20. エリクサー:ifステートメントの変数を設定してください
- 21. ListenableFutureの変数番号を設定してください
- 22. ノードが空で、空の場合は値に設定してください
- 23. nginxの場所にpgadminを設定してください
- 24. 変数が定義されている場合にのみ、追加の不可能なモジュールパラメータを設定してください
- 25. 変数が複数のスクリプトに設定されていることを確認してください
- 26. アドレスバーに設定されていない場合、nullを返すために$ _GETにtry catchを設定してください
- 27. ckanext-harvest:収穫源に「設定」が設定されている場合のエラー
- 28. 複数の環境変数が設定されている場合、Travis-CI allow_failures
- 29. は、「RM」の変数が2に設定されている場合は2
- 30. javascript変数が設定されている場合にPHPファイルを含める
なぜなら、この方法は@インポート文字列。たとえあなたがスタイル定義でそれを使用することができますが、変数が未定義であると言うコンパイルエラーは少なくなります。 – cameronhimself
@cameronhimselfこれは、インポートがミックスインの前に評価されるためです。いずれにしても、これまでのところ、そのような機能性が必要とされるようなユースケースは見当たりませんでした(私はちょっと疑問に答えました)。そのような施設に対するすべてのリクエストは、Less変数が一般的にどのように機能するかを誤解した結果になります(詳細については、「XY問題」を参照してください(https://github.com/less/less)。 js/issues/1400)、[#1706](https://github.com/less/less.js/issues/1706)など)。 –
@cameronhimself言い換えれば、この種のトリックが必要だと思う具体的なユースケースがある場合は、それを投稿してください。このようなハッキングをはるかに簡単に解決できると確信しています。 –