問題タブ [function-call]

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 投票する
3 に答える
655 参照

objective-c - Objective-CとCocoa:関数に入らずにクラス関数を呼び出すとクラッシュする

MyUtilsクラスに(宣言および実装された)クラス関数があります。この関数を呼び出すと、アプリがクラッシュします。デバッガーでは、「theFunction」関数の最初のアクションにブレークポイントがあります。そして、このブレークポイントに到達することはありません。

コードは次のとおりです。

コンソールは言う:

コールを置き換えると、NSString *item = @"youyou";すべて問題ありません。

呼び出しの前にaPreviousNSStringを強制的に保持しても、何も変更されません。あなたは何が起こっているのかについての考えを持っていますか?

0 投票する
2 に答える
2235 参照

python - Pythonの関数でビッグデータ構造を使用する場合の効率

ルックアップ作業を行うには、ビッグデータ構造、より具体的には大きな辞書を使用する必要があります。

最初の私のコードは次のようなものです。

何度も検索する必要があるので、lookup(info)などの関数として実装することをお勧めします。

次に問題が発生します。大きな辞書をどのように処理すればよいですか。

lookup(info、dictionary)を使用して引数として渡す必要がありますか、それともmain()で辞書を初期化して、グローバル変数として使用する必要がありますか?

グローバル変数を維持するのは面倒だと思うので、最初のものはよりエレガントに見えます。しかし一方で、大きな辞書を関数に渡す効率についてはよくわかりません。それは何度も呼び出され、引数の受け渡しが非効率的である場合、それは確かに悪夢になります。

ありがとう。

編集1:

上記の2つの方法を実験しました。

これがコードの抜粋です。lookup1は、ルックアップを渡す引数を実装し、lookup2はグローバルデータ構造「big_dict」を使用します。

これは出力です:

lookup1は8.410885
です。lookup2は8.157661
です。 クラスは4.525721です。

したがって、2つの方法はほぼ同じであるように見えます。そうです、グローバル変数メソッドの方が少し効率的です。

Edit2:

Amberによって提案されたクラスバージョンを追加してから、効率を再度テストします。次に、結果から琥珀が正しいことがわかりました。クラスバージョンを使用する必要があります。

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

c++ - 関数呼び出しの例外安全性について

呼び出しはf()例外セーフですか?

auto_new()つまり、 2 つの関数がインラインである場合、1 番目と 2 番目の関数呼び出しのアトミック性に違いはありますか?

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

iphone - iPhone-2つのコード行の間で非同期タスクが実行されるのを待っています

ビューがポップする直前に実行される2行のコードがあります。これらの2行はスクロールしています。これらの3つのアニメーションのために、ユーザーには見えないもの、またはよく見えないとしましょう。

これに対処するためにコールバックを使用したくありません。ビューがポップするまで約0.5秒待機し、2回のスクロール呼び出しの間にさらに0.5秒待機して、何が起こっているかを確認できるようにする必要があります。

アニメーションを停止せずにこれを簡単に行うにはどうすればよいですか?

私は(すばやく)[NSThread sleepForTimeInterval:0.5]を試しました。しかし、それはすべてを止めます。もちろん。

0 投票する
2 に答える
940 参照

c - 保存されたEBP値を使用してスタック内のスタックフレームを認識する

スタック上の生データを見て、スタックをスタックフレームに分割したいと思います。保存されたEBPポインタの「リンクリスト」を見つけることでそうしようと思いました。

  1. (標準で一般的に使用されている)Cコンパイラ(gccなど)は、関数プロローグの関数呼び出しで常にEBPを更新して保存すると想定できますか?

    pushl%ebp
    movl%esp、%ebp

    または、一部のコンパイラーが、パラメーターを取得せず、ローカル変数を持たない関数について、その部分をスキップする場合がありますか?

    x86の呼び出し規約と関数プロローグに関するWikiの記事は、それをあまり役に立ちません。

  2. 生データを見るだけでスタックをスタックフレームに分割するためのより良い方法はありますか?

ありがとう!

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

apache-flex - プログラムが一部の関数をスキップしているように見える理由がわかりませんか?

やあ、私が取り組んでいるいくつかの Actionscript と少し混乱しています。私の GUI では、コンピューティングが行われているときのために 4 つの関数を作成しました。これらは、showMessage("Loading Text...")、disableButtons()、clearMessage()、および enableButtons() です。彼らはプログラム全体でうまく機能します。ShowMessage は読み込みメッセージを表示し、disableButtons はボタンを無効にして誰も何もクリックできないようにし、clearMessage はジョブが完了すると読み込みメッセージをクリアし、enableButtons はそれらをすべてオンに戻します。

なんらかの理由で、ボタン クリック ハンドラーが 1 つあり、それが原因で問題が発生するのですが、その理由がわかりません。私はそれに似た他のものと同じように設定しました(すべて動作します)が、これはメッセージを表示したり、ボタンをオフにしたりしません。これが私のclickHandlerです...

そして、ここに creatRbeAC 関数があります...

読み込み中のテキストがまったく得られなかったので、コードから clearMessage 関数と enableButtons 関数を取り出して、最初からメッセージを追加してボタンを無効にしているかどうかを確認しました。私はまだ何も得ていません。clearMessage と enableButtons は、このボタン クリック ハンドラーまたは creatRbeAC 関数のどこにも見つからないため、計算が終了しても、読み込みメッセージとボタンが無効にならない理由がわかりません。

注意すべき点がいくつかあります。creatRbeAC 関数をコメントアウトすると、読み込みメッセージが表示され、ボタンが無効になります。creatRbeAC 関数がコード内にある場合、それらの関数が無視されているかのようです。

何か助けはありますか?大変ありがたく存じます。うまくいけば、私は十分な情報を提供しました。

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

c++ - 呼び出されたことのない関数を見つける方法

重複の可能性:
呼び出されない関数を見つける

こんにちは私は同様の質問がすでに尋ねられたことを知っています決して呼び出されない関数を見つけます が、誰かが他の解決策を持っているかもしれませんか?それは外部プログラムの使用を必要としません。私はC++で働いています

0 投票する
2 に答える
953 参照

c++ - どちらが速いですか: noop 関数呼び出しまたは if ステートメント?

私はデリータの関数ポインタを取得しましたが、ほとんどの場合、何かの内部コピーを維持する場合にのみ、デリータは必要ありません。現在、私はヌープ削除関数でそれを行います:

明らかな他の選択肢は0、不要なときにに設定し、 でCleanup関数をチェックインすることif(deleter_ != 0) (*deleter_)(object_)です。
さて、コーディングの途中で「うーん、どちらのバージョンの方が速いかな?」と思いついたので、最適化というよりは個人的な興味です。質問がちょっとばかげているように聞こえる場合は申し訳ありませんが、それは私を悩ませているので、本当に知りたいです. 事前にご回答いただきありがとうございます。

0 投票する
2 に答える
2041 参照

javascript - JavaScript関数の呼び出しは、プロトタイプまたは直接参照を介して高速ですか?

JavaScriptで、bObj内からaObj.myMethod()を呼び出したいとしましょう。私のアプリケーションの場合、設計の観点から、aObjはbObjの基本クラスです。JavaScriptは遅延バインディング言語です。つまり、myMethodは実行時に解決する必要があります。関数の解決は速いですか

////////// もしも

1-私は自然に自分のデザインを使用してbObj.prototype=aObjと言い、実行時にbObj.myMethodを呼び出します。

////////////////////////また

2-プロトタイプでは関数の解決が遅くなる可能性があるため、aObjをbObjのプロパティとして保持し、bObjの内部からaObj.myMethod()を呼び出します。


私の主な関心事は実行速度です。私のアプリケーションでは、myMethodは1秒間に何百万回も呼び出されています。ほとんどのブラウザーは最近呼び出された関数へのポインターをキャッシュするので、どちらの場合も関数解決プロセスが高速化されることを私は知っています。しかし、これら2つのケースでの関数解決メカニズムの詳細を誰かが提供し、どちらの方法がおそらくより高速であるかについての洞察を与えることができますか?解決メカニズムはすべてのブラウザで同じですか、それとも完全にブラウザに依存していますか?

0 投票する
3 に答える
766 参照

c++ - リストからアイテムを削除するための削除機能を取得できません

人を追加すると正しく追加されますが、名前を削除しようとすると、名前が見つからないと表示されます。このプログラムを使用すると、ユーザーは電話帳を作成し、電話帳の情報を編集できます

上記プログラムのヘッダファイル

これは、ユーザーが電話帳を操作できるようにするクラスです。