問題タブ [anonymous-objects]

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.

0 投票する
1 に答える
67 参照

lua - 匿名ユーザーデータ変数の作成

私は lua C API を使用して、ネイティブ クラスとやり取りするスクリプトを実行しています。実行時の型情報に Qt の MOC を利用しています。これまでのところ、lua が通信できるようにするすべてのクラスの作成、削除、およびインデックス作成を実装しました。

これが私が今できることのスクリプト例です:

そのスクリプトでotherObjectは、作成され、スタックに残ります。次に、オブジェクトを引数としてfunctionForOthers()受け入れるパススルーが渡されます。OtherClass

otherObjectしかし、スタックに置かれたくない場合はどうすればよいでしょうか? 関数呼び出しのスコープ内にのみ存在する無名変数にしたい場合はどうすればよいでしょうか?

これは引き続き機能しますが、OtherObjectインスタンスは作成されますが、変数に割り当てられることはなく、スコープが終了するまでスタックに到達できなくなります。これは直接的な問題を引き起こすわけではありませんが、メモリ効率の良い部分が気になります。

これらの操作のバックエンドを処理する多くのネイティブ コードがありますが、その基本的な要点は、それがnewグローバル テーブルのフィールドでありMyClassOtherClassネイティブの CreateObject 関数を指すことです。そこから、クラスのインスタンスが作成され、呼び出し後にユーザーデータに格納されますlua_newuserdata()

functionForOthers()呼び出しは、メソッドが存在する場合に呼び出すネイティブ IndexObject 関数を指すメタメソッドを利用し__indexます。

匿名のユーザーデータ変数を実装するための基本的なアプローチは何ですか? OtherClass関数呼び出しが完了するまで、2 番目のスクリプトのオブジェクトをスコープ内に保持する方法が必要なだけです。

0 投票する
4 に答える
221 参照

c# - 匿名型の JSON 文字列をチェックする C# 汎用ユーティリティ

JSON文字列があります。匿名オブジェクトが含まれているかどうかを確認したい。存在する場合は、値を返します。そうでない場合は、デフォルト値を返します。次に、さまざまな匿名オブジェクトに対してこれを複数回繰り返すことができるようにしたいと考えています。

これは私が現在実装しているコードのサンプルですが、明らかに毎回複製されており、あまり「クリーン」ではありません。

匿名型ごとに呼び出すことができる汎用メソッドであることが望ましいです。また、try/catch に頼る必要がないのもいいでしょう。それはできますか?

アップデート...

これは、int、bool、および double に対してうまく機能します。

文字列にこれを追加しました: