問題タブ [proc]
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.
ruby - いつラムダを使うべきか、いつ Proc.new を使うべきか?
Ruby 1.8 では、proc/lambda との間に微妙な違いがありProc.new
ます。
- それらの違いは何ですか?
- どちらを選択するかを決定する方法について、ガイドラインを教えていただけますか?
- Ruby 1.9 では、proc と lambda が異なります。どうしたんだ?
ruby - procをブロックとしてメソッドに提供します
次の配列があるとしましょう。
そして、要素の2番目の要素を比較して、最小の要素を見つけたいと思います。が。未満である[5, 1]
ため、最小要素はになります。次のコードを使用できます。1
7
最大値を計算するために、私は同じことをすることができます:
それは与える[2, 7]
。
私はいつも同じブロックを使用しています。そのブロックをどこかに置き、min/max関数に提供したいと思います。私は次のようなものを望んでいました:
動作しますが、動作しませんでした。私がこれをどのように行うことができるかについてのアイデアはありますか?
ruby - なぜ繊維が必要なのですか
ファイバーの場合、典型的な例があります。フィボナッチ数の生成です。
なぜここにファイバーが必要なのですか?同じProcでこれを書き直すことができます(実際にはクロージャー)
それで
と
まったく同じ結果が返されます。
では、繊維の利点は何ですか。ラムダやその他のクールなRuby関数ではできない、Fibersで書くことができるものは何ですか?
android - Android ICS の FileReader で /proc/net/xt_qtaguid/stats を正しく読み取れない理由
すべてのインターフェイスとアプリケーションのトラフィック統計を記録する Android ICS の /proc/net/xt_qtaguid/stats を読みたいです。以下はコード スニペットです。
このファイルを cat すると、次のように表示されます。
idx iface acct_tag_hex uid_tag_int cnt_set rx_bytes rx_packets tx_bytes tx_packets rx_tcp_bytes rx_tcp_packets rx_udp_bytes rx_udp_packets rx_other_bytes rx_other_packets tx_tcp_bytes tx_tcp_packets tx_udp_bytes tx_udp_bytes_other_bytes_other_packets_bytes
2 rmnet0 0x0 0 0 6266 105 8882 121 1428 30 4838 75 0 0 208 4 2552 44 6122 73
3 rmnet0 0x0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
4 rmnet0 0x0 1000 0 0 0 2262 39 0 0 0 0 0 0 0 2262 39 0 0
5 rmnet0 0x0 1000 1 0 0 290 5 0 0 0 0 0 0 0 290 5 0 0
6 rmnet0 0x0 10004 0 1000 0 0 0 0 0 0 0 0 0 0 0 0
7 rmnet0 0x0 10004 1 20177 36 7037 81 20177 36 0 0 0 7037 81 0 0 0 0
そして、NetworkStatsFactory.java(Androidオリジナルクラス)もこのファイルを読み込んで同じメソッドを使っていることがわかりました。このクラスを使用しようとしましたが、正しく読み取れません:
Google のエンジニアも同じ間違いを犯しましたか? :)
ruby - あるクラスから別のクラスにメソッドをコピーする
実際には他のクラスに属するいくつかのメソッドを含む小さなクラスを作成したいので、既存のコピーである他のクラスでメソッドを定義するにはどうすればよいですか。理解できないメタプログラミングの魔術師だと思います。
なぜこれが必要なのですか?私は3つのメソッドだけでクラスを取るgemに取り組んでいます。初期化すると(親クラスに隠されます)、このメソッドが別のクラスに渡されます。これはブロックで作成できますが、メソッドを使用すると少しきれいになります。
PS:あるクラスから別のクラスにメソッドをコピーするようなものです
PSS : または... メソッドを proc に変換する方法を教えてください。class_eval
c++ - GDB は内部ブレークポイントを挿入できません
1 つの共有ライブラリ (.so) の関数に 2 つのブレークポイントを追加gdb 7.4
して実行し、プロセスにアタッチしました。
Gdb がブレークポイントにヒットし、n
いくつかのステップを実行したところ、gdb は次のエラーを報告しました (太字のテキスト)。
(gdb) b [関数名]
ブレークポイント 1 at 0xf1f28a49: file ../../../../../[file name].cpp, line 167.
Breakpoint 2 at 0xf1f2dae5: file ../.. /../../../[ファイル名].cpp、60行目
。警告: 複数のブレークポイントが設定されました。
不要なブレークポイントを削除するには、「delete」コマンドを使用します。
(gdb) c
つづく。
[新規スレッド 0xcaafab90 (LWP 28480)]
[スレッド 0xcaafab90 (LWP 28480) 終了]
[新規スレッド 0xcaafab90 (LWP 29558)]
[新規スレッド 0xc8cb6b90 (LWP 29980)]
[スレッド 0xc8cb6b90 (LWP 29980) への切り替え] [
ブレークポイント]関数名] (ostr=..., clientResponse=..., httpProtocol=..., >reqType=...) at ../../../../../[ファイル名]. cpp:60
60 ../../../../../[ファイル名].cpp: そのようなファイルまたはディレクトリはありません。
in ../../../../../[ファイル名].cpp
(gdb) ni
0xf1f2daed 60 in ../../../../../[ファイル名].cpp
(gdb) n
ブレークポイント 1、[関数名] (ostr=...、clientResponse=...、httpProtocol=...、>closeConn=...、asynchResponse=...、reqType=...)
at ../../../../../[ファイル名].cpp:167
167 in ../../../../../[ファイル名].cpp
(gdb) n
警告:
ブレークポイント 0 を挿入できません
。メモリ アドレス 0x36cc6dde へのアクセス中にエラーが発生しました: 入出力エラー。
/lib/libc.so.6
(gdb)からの siglongjmp () の 0xf7082771
これは からの出力です/proc/[PID]/maps
:
08048000-08146000 R-XP 00000000 08:03 293876
08146000-08150000 RW-P 000FE000 08:03 293876 08150000-099C8000 RW
-P 081500000000: 00 C29FA000 RWXP C21FA000 00:00 0 C29FA000-C29FB000 --- P C29FA000 00:00 0 ……<BR> F1E1B000-F1E24000 RW-P F1E1B000 000 00:00 0 F1E24000 - F2093000 R-XP 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030003 F2094000 --- P 0026F000 08:03 295549 .SO F2094000-F2098000 R-P 0026F000 08:03 295549 .SO F2098000-F209C000 RW-P 00273000 08:03 295549 .SO F209C000-F209D000 P209C 000P209C 000P209C000:00C
私の質問は次のとおりです。
Gdb はコマンドの内部ブレークポイントの挿入に失敗しますが、テキスト セクションが にある場合に
ni
アドレスにアクセスしようとするのはなぜですか?ご覧のとおり、そのアドレスはマップの出力に含まれていません。0x36cc6dde
0xf1******
より一般的な質問ですが、共有ライブラリは から始まると言われまし
0x40000000
たが、なぜ私の環境ではそうではないのでしょうか?
共有ライブラリは でコンパイルされ-fPIC
ます。上記のトレースでは、いくつかのシンボル名を隠しています。
java - 時間の経過とともにJavaアプリケーションが遅くなる
JNIを使用してJavaモジュールを呼び出しているPro*Cアプリケーションがあります。アプリケーションのパフォーマンスは、1日または2日間継続して実行すると低下します。メモリ使用量は許容範囲内にとどまります。パフォーマンスの問題を調査する方法を教えてください。
ruby - proc クラスについての理解
Ruby Proc クラスを勉強しています。「def state="メソッドが実行される理由がわかりません。
また、「t1.state = 1」が「def state=(1)」になる理由も知りたいです。
"def state" と "def state=" の違いがわかりませんか?
この接続 "&proc>proc>proc.call" は理解できます。
namespaces - tcl 名前空間で proc を定義する方法
TCL で次のようなコードを見ました。
名前空間 ::info には 3 つの変数が定義されていますが、3 つの procs(setcount setId setRole) が名前空間で宣言されていません。::info の外で定義されているようですが、これは許可されますか? これはどのように作動しますか?
ruby-on-rails - ブロックが関数(ルビー)よりも役立つのはいつですか?
同じ結果をもたらす2つの例があります。
ブロック付き:
と方法で:
2番目の解決策はより簡単に思えますが、アプリケーションコードで最初の解決策のいくつかの使用法を見つけました。私の質問は次のとおりです。どのような状況で最初のものが推奨されますか?それぞれの長所と短所は何ですか?