問題タブ [program-flow]
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 - Java try-catch-finally の奇妙なバグ
JODConverter を使用して .xls と .ppt を .pdf 形式に変換しています。このために、私は次のようなコードを持っています
私の出力:
メソッドの PS 戻り値の型はvoid
どのように可能ですか?connection.connect() に何らかの問題があっても、catch ブロックに入っています。混乱している
c# - ShowDialogue別ウィンドウ時のプログラムフロー
流れるシナリオを検討する
上記のコードからわかるように、メソッドの途中に別のウィンドウを表示しています。新しいウィンドウを使用した後もフローが続くと予想していましたが、そうではありません。ここで明らかな何かが欠けていると思います。 、どんな助けでも大歓迎です
前もって感謝します
javascript - 関数を返す関数を理解するにはどうすればよいですか?
私が苦労しているサンプルコードは次のとおりです。
それを数学的に表現したり、流れに沿ったりする方法はありますか? なぜ10がxで9がyなのかわかりません。
c++ - 同様の関数をコーディングするさまざまな方法での優れた、または利点
私は (C++ で) GUI のコードを書いていますが、今は行単位でのテキストの構成に関心があります。私が抱えている問題の 1 つは、コードが非常に長くなり、混乱を招くことです。テキスト プレゼンテーションに追加するすべてのオプションに対して、必要な関数の数が ^2 のシナリオに陥り始めています。 write はその 2 乗です。これに対処しようとして、特定の設計上の選択肢が出てきましたが、より良い方法、またはそれらの間の長所または短所の程度はわかりません。
フローが非常に似ている 2 つのメソッドがあります。つまり、同じ制約を考慮して同じオブジェクトを反復しますが、最終的にはこのフロー間で異なる操作を実行します。誰にとっても興味深いことに、メソッドはテキストをレンダリングし、テキストが他のオブジェクトの周りにラップされているか、単に行の終わりにあるためにテキストが行からオーバーフローしているかどうかをそれぞれ判断します。
これらの関数は、フローが異なる左、右、または中央のテキスト用にコピーして書き直す必要があるため、私が行うデザインの選択は 3 回繰り返されます。
基本的には、これらの異なるアクションを処理するための 2 つの別々の方法である、現在持っているものを継続することも、それらを 1 つの関数にマージすることもできます。テキストオーバーフロー。
これについて一般的に受け入れられている正しい方法はありますか?それ以外の場合、関係するトレードオフは何ですか?ある方法を他の方法よりも使用する必要があることを示す可能性のある兆候は何ですか? 私が見逃したことを行う他の方法はありますか?
私はこれを数回編集して理解しやすくしましたが、そうでない場合は、編集して説明できるようにいくつか質問してください. 2 つの異なるメソッドのソース コードを投稿することもできますが、それらは説明に時間がかかりすぎる多くの関数とオブジェクトを使用しています。
// 編集: ソースコード //
機能 1:
void GUITextLine::renderLeftShifted(const GUIRenderInfo& renderInfo) { if(m_renderLines.empty()) return;
機能 2:
ベクトル GUITextLine::recalculateWrappingContraints_LeftShift() { m_pixelsOfCharacters = 0;
したがって、基本的に render() は renderCoordinates をパラメーターとして取り、そこからレンダリングする必要がある場所のグローバル位置を取得します。calcWrappingConstraints は、割り当てられたスペースを超えるオブジェクト内のテキストの量を計算し、そのテキストを関数として返します。
m_renderLines は 2 つの float 構造の std::vector です。ここで、.s_x = レンダリングを開始できる場所、.s_y = レンダリングのためのスペースの大きさ - ではなく、'renderLine' の本質的な幅であり、終了場所ではありません。
m_text は、テキストの文字列と、スタイル、色、サイズなどのデータを含む GUIText オブジェクトの std::vector です。また、レンダリングを実行したり、グリフの幅を計算したりするフォント オブジェクトへの参照である s_font の下にも含まれています。
うまくいけば、これで問題が解決します。
c# - C# でプログラム フローをトレースする現在の可能性は?
数年前にPostsharpを使用して、メソッドにトレース ステートメントを手動で追加することなく、実行中のプログラム フローをトレースしました。
同様の方法で実行をトレースして出力をデバッグする他の新しい方法はありますか?
(できれば、ビルドされたアセンブリをインストルメント化する必要のない方法です。おそらく不可能でしょうか?)
c# - ファイルストリームとバイナリストリームの適切な廃棄とファイルストリームの廃棄
そのまま、コードのエラー防止を試みたところ、非常に乱雑に見えてしまいました。
特定の種類のファイルを読み取る機能を設定しています。問題が発生した場合は関数が false を返し、すべてが機能した場合は true を返します。すべてを構造化する方法を理解するのに苦労しています。
ファイル ストリームを開こうとする最初の try-catch ブロックがあります。その後、ファイルサイズや特定のオフセットでの値など、読み取りプロセス中に行う他の特定のチェックがあります。私が設定した方法は、if else ステートメントを使用することでした。そのような:
...br はバイナリ リーダーであり、fs はファイル ストリームです。このようなブロックがたくさんあり、同じことを何度も書くのは悪い習慣のようです。最初に頭に浮かぶのは、すべてを try-catch ステートメントでラップし、if else ブロックを使用する代わりに例外をスローすることです。try-catch ステートメントについて読んだとき、それらを持っているのは良いことですが、すべてをそれらでラップするわけではないことを覚えています。正直なところ、エラーが発生した場合にのみ効果があるため、すべてを try catch ステートメントでラップするのが悪い習慣である理由をまだ完全には理解していません。
また、バイナリ リーダーとファイル ストリームを閉じる必要がありますか? それらを処分せずに使用する方法はありますか?
php - プログラムフローを制御するために`if($ a!= NULL)`または `if($ a!== NULL)`を使用する必要がありますか?
これはおそらく答えるのが難しい基本的な質問ですが、PHPを使用する場合のパフォーマンスの問題について、制御フローと同じである かどうかについて疑問に思っています。!==
!=
次の簡単なPHP関数について考えてみます。
パフォーマンスの観点から、PHPが変数型を反復処理して有効な比較を見つけようとするのを防ぐために、同一の場合( )を使用することが望ましいですか?!==
最初に変数タイプを比較し、それが失敗した場合、すぐに?を返すと仮定します。私はPHP3以来ほとんど反射神経として使用してきました。計算量の多いプロジェクトに取り組んでいるので、パフォーマンスに関する詳細な考慮事項がより重要になります。!==
FALSE
!=
もちろん、フロー制御の最適化に関する他のコメントも歓迎します。
c++ - c /c++のメモリアドレスを介したプログラムフローの制御
タイトルが少しわかりにくい場合は申し訳ありませんが、私はネイティブスピーカーではなく、アイデアをまとめるのに少し苦労しました...
実行するプロシージャのコレクションをコンパイルしてメモリに作成するために必要なすべての関数とオブジェクトがあり、それらのアドレスとサイズがわかっているとすると、基本的には疑似「バイナリ」ファイルを使用してプログラムのフローを制御するにはどうすればよいですか。 「このデータをこの関数のアドレスにプッシュし、この関数アドレスを呼び出し、戻り値をこの関数アドレスにプッシュする」などのスクリプト...
基本的に、相互接続されたオブジェクトのコレクションと静的ロジックにアクセスし、それらのメモリアドレスを介して動的に制御するには、疑似「マシン」コードを処理する必要があります。
ありがとう!
編集:質問を閉じる前に、必要な特定の情報を実際に提供していない質問の複製として、いくつかのコードスニペットを投稿してください。
EDIT2:以下のコメントからこれを追加しました、おそらくそれは私の質問にもっと明確になるでしょう:
プログラム全体をコンパイルする代わりに、コンパイル済みのコンポーネントを使用して、外出先で動的オブジェクトを作成しようとしています。オブジェクトのツリーはディスクにシリアル化して瞬時に再作成できるため(オブジェクトごとではなく、ツリー全体をプールに割り当てる)、動的プログラムを作成し、ディスクに保存してメモリに再構築する方法があります。すべての設計時識別子がそれらのアドレスに置き換えられました。今必要なのは、そのプログラム構造全体を実行する方法だけです。
php - PHP の「または」構文
私はこれをよく見てきました:$fp = fopen($filepath, "w") or die();
しかし、この「または」構文に関する実際のドキュメントを見つけることができないようです。機能は明らかですが、どこでも使用できますか? そして、それに続く必要がありdie()
ますか?or
次のようなものを使用できる場合に使用する際の注意事項はありますか
ばかげた質問のように思えることはわかっていますが、これに関する厳密で迅速なルールは見つかりません。ありがとう。
java - Javaでキーを押すと関数の実行を返す/停止する
プログラムに、キーを押すと停止したい特定の機能があります。そのためにネイティブキーボードフックを設定しました。現在、そのキーが検出されたときに System.exit(0) を呼び出します。ただし、プログラムを終了したくはありません。その操作を停止して、呼び出された場所に戻るだけです。以下に例を示します。
foo() の呼び出しをスレッドに入れて呼び出すことができるようにしましたThread.interrupt()
が、関数呼び出しを非ブロックではなくブロックにしたいです。また、ブロッキング IO 呼び出しがあるため、例外を処理する必要があり、以前に問題が発生しfoo()
たため、必要でない限り割り込みを処理したくありません。ClosedByInterruptException
また、 の本体foo()
は非常に長く、内部に多くの関数呼び出しが含まれているためif (stop == true) return;
、関数に書き込むことはできません。
ブロッキングスレッドを作成するよりも良い方法はありますか? もしそうなら、どのように?そうでない場合、ブロック スレッドを作成するにはどうすればよいですか?