問題タブ [inline-code]
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.
java - Perl、Inline_Java、Java オブジェクトとメソッドの動的ロード
オブジェクト FooBar を動的にロードし、roquet 関数を (動的に) 呼び出す方法について誰か助けてもらえますか? 私はPerlでこのスニペットを持っています:
次のアプローチとバリエーションを試しまし た。アプローチ:
b. アプローチ:
javascript - htmlから外部jsファイルに移動した後、Javascriptコードが機能しないのはなぜですか?
HTMLで完全に機能していたこのJavascriptコードがあります。main.jsに移動すると、突然機能しなくなりました。
免責事項:私はjQueryとJavascriptに非常に慣れていないので、それが本当に明白である場合は申し訳ありません。
ruby - c拡張機能を追加するRubyコードが機能しないのはなぜですか?
このRubyコードを実行しているときに、多くのエラーが発生しています...
c# - C#:関数呼び出しが手動インライン化よりも速いのはなぜですか?
2の累乗を計算する2つの方法で実行時間を測定しました。
1)インライン
2)簡単な関数呼び出しで
デバッグモードで実行している場合、すべてが期待どおりです。関数の呼び出しは、計算をインラインで実行するよりもかなりコストがかかります(ラインで385ミリ秒、関数呼び出しで570ミリ秒)。
リリースモードでは、コンパイラが非常に小さな関数を内部的にインライン化するため、コンパイラが関数呼び出しの実行時間を大幅に短縮することを期待しPower()
ます。しかし、関数呼び出しが手動のインライン計算よりも高速であるとは思いません。
最も驚くべきことに、これが当てはまります。リリースビルドでは、最初の実行には109ミリ秒が必要であり、呼び出しを伴う2回目の実行にはPower()
62ミリ秒しか必要ありません。
関数呼び出しは、手動のインライン化よりもどのように高速になりますか?
これがあなたの複製のためのプログラムです:
c++ - C++ インライン関数は、後でヘッダーで宣言された関数を呼び出すことができますか?
以下は、MSVC2008 および MSVC2010 で問題なく動作します。
はい、これはちょっと奇妙です: (その時点で)はまだ宣言されていませんが、 をFuncA()
呼び出します。ただし、MSVC2008 と MSVC2010 はこれで問題ないと考えています。FuncB()
FuncB()
どうやら、gcc
これでいいとは思えない―― FuncB was not declared in this scope
。
問題: 私はこれらをたくさん持っていますが、それらを宣言して後で定義するのは「苦痛」です。さらに、それらを適切に「順序付け」するのは難しいため、それぞれが宣言された後にのみ関数を呼び出します。 しかし、最初に宣言してから定義する必要があると思いますか?
これらの関数がテンプレートであるかどうか、またはテンプレート クラス内で定義されているかどうかでルールが異なりますか?
gcc
具体的には、Microsoft が大量の相互結合コードを受け入れる非常に「遅いコンパイル」であることに気付きました。 「コードを見る」(正確さのための最初のパス、およびパラメータ化/呼び出し中に再び)。
(この問題は、Microsoft コードを Linux/gcc に移植するときに発生します。)
===更新===
以下は、(このコード移植作業で) 私たちが持っている「代替」シナリオであり、これらのいずれかに基づいてあなたの答えは変わりますか?
...と:
===UPDATE+2===
コンセンサスはこれが有効なC++コードであり、機能するはずであるコメントをありがとう(@Adamが示唆したように、関数「定義済みインライン」はクラスの後に定義されているかのように動作し、定義された関数を呼び出すことができるはずですそのインライン定義の後のクラス インターフェイスで)。
詳しくは:
はい、FuncA()
インライン実装の最初の例で実際にこのコンパイル エラーが発生しました。
...使用:
(これは MSVC2008/MSVC2010 で機能することを思い出してください)。
私のコード例 (上記) が不十分であることに気付きました (上記の例では、このエラーは表示されませんgcc
)。詳細は次のとおりです。
Foo
基本クラスがあります(それは問題ではないと思います)Foo
これらの機能を通過する内部enum
を定義します(これは問題ではないと思います)- これらの関数は、マクロを介して「展開」されます(重要だと思います-以下を参照)
- これらの関数は 56 個あります (重要だと思います -- 以下を参照してください)。
より完全なコード例は次のようになります (これは自慢ではありません)。
コード の意図:FooParent
基本クラスには、(多くの) 派生クラスによって「共有」されることを意図した実装があります。派生クラスは独自のenum
値を定義します。これらの値を使用する関数はenum
、マクロを介して実装されました (FooParent
は ではなくtemplate<>
、派生した に依存できないためenum
)。
奇妙な行動:
FooA(){FooB();}
ネストが「数行」だけで「後で」定義された関数を参照する場合、正常にgcc
コンパイルされます。ただし、まだ宣言されていない関数が のようにずっと後の場合Foo2(){Foo53();}
、それはクラスのメンバーではないgcc
と結論付けFoo53()
ます (ただし、メンバーです)。
これが私が起こっていると思うことです:
- 物理的に「1 行」にある大量のコード (56 個の関数) に問題があるようです。これらの関数をマクロから削除し、エスケープ行末を削除すると、正常にコンパイルされます。
\
gcc
したがって、(コード移植)答えは次のとおりだと思います。
- プリプロセッサ マクロを使用しないでください
- から派生した
FooParentBase<>
テンプレート クラスを作成しFooParent
、そこから を派生させます。これには、テンプレート パラメータとしてFoo
が必要です。typename Foo::enum
私はこれらの変更に問題はありません (私はマクロが好きではありませんでした) が、gcc
ここに問題があるように見えるのは奇妙だと思います。
これを修正する方法について他の提案はありますか? (上記のリファクタリングはあなたがすることですか?)
javascript - クライアント側のボタン クリック イベントで <% ... %> を使用できません
クエリ文字列の値に基づいて別のページにリダイレクトしようとしています。これは、asp.net Web フォーム ページです。キャンセル ボタンをクリックすると、次の js が実行されます。ボタンは devexpress ボタンです。
CallingPage は、asp 隠しフィールドの ID です。ページの読み込み中に値を設定しています。このページが読み込まれる前でも、コントロールにコード ブロックが含まれているため、コントロール コレクションを変更できません (つまり<% ... %>
) エラーが発生します。それがdevexpressボタンコントロールによるものなのか、それとも他の何かによるものなのかはわかりません。
c# - C# でインライン化する代わりに?
次のステートメントを使用して、現在の関数 (イベント ハンドラーなど) の名前を Visual Studio (2010) の [出力] ウィンドウに出力します。
これを , などのユーティリティ関数内に配置するDisplayFunctionName()
と、それを呼び出す親関数の代わりに、毎回表示されるのは " DisplayFunctionName
" - 驚くことではありません!
C# にはインライン化がないことはわかっていますが、このようなステートメントを複製する必要がないように、「スニペット」を使用する以外に、この状況に対する別の解決策はありますか?
javascript - テキスト コンテンツとしてレンダリングされるインライン スクリプト
HTML 文字列として指定された DOM オブジェクトがあり、jQuery メソッドを使用して AJAX によって HTML ページに挿入されますreplaceWith()
。HTML 文字列には、<div>
要素とそれに対して機能するインラインが含ま<script>
れており、jQuery コマンドは次のようになります。
この AJAX が実行されると、<div>
要素が正しくレンダリングされ、内部のスクリプトが機能します<script>
が、それに加えて、インラインのコンテンツが<script>
ページ上でそのままレンダリングされます。なぜこうなった?どうすればこれを回避できますか? Chrome 開発者ツールで対応する部分を見ると、インライン スクリプトが 1 回だけ表示されます (意図したとおりです)。
css - Worklight 5.0.5 は変更不可能なインライン CSS を生成します
今日、Android モバイル プロジェクトで Worklight 5.0.5 を使用しているときに問題が発生しました。このプロジェクトは、Apache Cordova、Dojo Mobile、および Worklight のライブラリーを利用します (役立つ場合)。
問題は、場合によっては、ビルド時に Worklight が不要なインライン CSS を自動的に生成することです。Worklight のどのコンポーネントがこれを引き起こしているのか、また、必要に応じてこの動作を変更または防止する方法を見つけることもできません。これは小さな問題のように思えるかもしれませんが、これはインライン CSS であり、ビルド中に影響を与えることはできません!
JavaScript と CSS を検索すると、私が作成したものと Dojo 用にインポートしたものの両方で、CSS を追加するものは何も表示されないようです。
例:
HTML に次のタグがあります。
ビルド後、これは WebKit ベースのブラウザー (Google Chrome) で次のように表示されます。
最後のインライン CSS である「padding-left」は、私が探して破棄しようとしているものです。この動作の原因と、それを変更または防止する方法を知っている人はいますか?