問題タブ [syntactic-sugar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonで辞書を照会するための省略形はありますか?
実行したいクエリのタイプを擬似コードで記述します。
明らかに、Python で次のように書くことができます。
しかし、私はそれを行うよりクリーンな方法があると思います。私はPythonに慣れていないので、まだ非常に命令的に近づいています。
編集:
SOに関する他のいくつかの質問を見て、私が思いついた解決策は次のとおりです。
おそらく、もっと良い方法があります。
c++ - C/C++ のシンタックス シュガー
Ruby を調べていると、「until」と「unless」というキーワードが非常に興味深いことがわかりました。そこで、同様のキーワードを C/C++ に追加するにはどうすればよいか考えました。これは私が思いついたものです:
これに関するいくつかの提案を探しています。誰かがより良い代替案を提案できますか?
これは、私が意図したことを説明するために書いたプログラムの例です。
C または C++ で使用できる同様のトリックの参考文献をいくつか教えていただければ幸いです。
ruby - Active Recordスコープに引数を魔法のように供給する方法は?
これが可能かどうかはわかりませんが、解決策を思いつくかどうか見てみましょう。これは多かれ少なかれ可読性の観点からコードの品質に関するものであり、実際の問題ではありません。私はすでに解決策を持っているからです。私は友情モデルとユーザーモデルを持っています。友情モデルは、2 人のユーザー間の友情をモデル化するために使用されます。
引数を指定せずに、ユーザー モデルを介して、要求された、保留中または承認されたスコープを呼び出すことは何とか可能ですか?
java - java、別の名前でクラスをインポートする方法はありますか
別の名前でクラスをインポートする方法はありますか? たとえば、javax.C というクラスと java.C という別のクラスがある場合、javax.C を C1 という名前でインポートし、java.C を C2 という名前でインポートできます。
C# では次のようなことができます。
またはVB:
c# - foreachは純粋に「シンタックスシュガー」ですか?
コンパイラは、が配列で使用される場合、ループforeach
をループのようなものにコンパイルします。また、コンパイラは、がまたはで使用される場合、ループをループのようなものにコンパイルします。それで、これは純粋に意味するのでしょうか?それともそれについて洗練されたものはありますか?for
foreach
foreach
while
foreach
IEnumerable
IEnumerable<T>
foreach
syntactic sugar
CLRは知っていforeach
ますか?foreach
MSILコードで特別に設計されたものはありますか?
c# - ExpandoObject でコレクション初期化構文を使用するにはどうすればよいですか?
必要なメソッドとメソッドを備えた新しいExpandoObject
実装があることに気付きました。そのため、アイテムを辞書に追加するのと同じ方法で、コレクション初期化子構文を使用して expando オブジェクトにプロパティを追加できるはずです。IDictionary<string,object>
IEnumerable<KeyValuePair<string, object>>
Add(string, object)
しかし、それを行う方法はないようです。エラー:
「System.Dynamic.ExpandoObject」には「追加」の定義が含まれていません
インターフェイスが明示的に実装されているため、これは機能しないと思います。しかし、それを回避する方法はありますか?これはうまくいきます、
しかし、コレクション初期化子の構文ははるかにきれいです。
c# - C#静的コンストラクターで括弧が必要なのはなぜですか?
検討:
なぜが()
必要なのstatic Foo() {...}
ですか?静的コンストラクターは常にパラメーターなしである必要があるのに、なぜわざわざするのでしょうか。パーサーのあいまいさを回避するために必要ですか、それとも通常のパラメーターなしのコンストラクターとの一貫性を維持するためだけですか?
それはイニシャライザーブロックに非常によく似ているので、私はしばしばそれらを誤って除外していることに気付き、それから数秒間何が悪いのかを考えなければなりません。同じように排除できればいいのにと思います。
iterator - イテレータとしても機能するように lua オブジェクトを作成する賢い方法はありますか?
他の場所で定義した「オブジェクト」があるとしましょう。アイテムのセットを表しているかもしれませんが、単純なテーブルよりも複雑です。それが何であれ、それを反復することは論理的です。
そのため、iterator
メソッドが定義されています。だから私はこれを書くことができます:
私が疑問に思っているのは、私ができるメタメソッドのトリッキーがあるかどうかです。これにより、これを書くことができます:
それで、ありますか?
list - Scala: 代替リスト構文 (可能であれば角括弧を使用)
Scalaに代替の「リスト」構文はありますか? 「[」および「]」と呼ばれる 1 つの追加のクラス/タイプ/演算子* を定義することは可能ですか?
タイプを示すために「角括弧」が使用されることは知っていますが、リストを宣言するという繰り返しの作業には最適です。
';' また '?' 最後のリソースとしても良いでしょう。
ありがとう
obs .:多くの検索の後、私が見つけた唯一の代替手段は「cons」を使用することでした:
ただし、キーの入力はまったく減りません。
- 私はまだScalaでそれらのことを学んでいます
編集: 明確にするために: 私の場合、パフォーマンスは優先事項ではありません。はい、シフトは歓迎されません。:P 舞台裏の動機: 私は Haskell スタイルが好きですが、Java で直接使用することはできません。
EDIT 2: 両方の Rex Kerr ソリューションに基づく最終的なソリューション
オブジェクト型の実装:
オブジェクトタイプを使用:
scala - 山かっこ (<>) を使用したメソッド
メソッド名に山かっこを使用することは可能ですか?たとえば:
実際の状況は明らかにこれよりも複雑です!! 便利なユーザー インターフェイスを提供しようとしています。