タグ付けされた質問 「scope」

スコープは、値と式が関連付けられている囲みコンテキストです。このタグは、さまざまな種類のスコープに関する質問や、スコープが明確でない可能性がある質問に使用します。

5
Pythonのtimeitで「グローバル名 'foo'が定義されていません」を取得する
私はPythonステートメントの実行にかかる時間を調べようとしているので、オンラインで調べたところ、標準ライブラリが、まさにそれを実行することを目的としたtimeitというモジュールを提供していることがわかりました。 import timeit def foo(): # ... contains code I want to time ... def dotime(): t = timeit.Timer("foo()") time = t.timeit(1) print "took %fs\n" % (time,) dotime() ただし、これによりエラーが発生します。 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in dotime File "/usr/local/lib/python2.6/timeit.py", line 193, …
90 python  scope  timeit 

18
JavaScript関数のスコープとホイスト
Ben CherryによるJavaScript Scoping and Hoistingに関するすばらしい記事を読んだところ、彼は次の例を示しています。 var a = 1; function b() { a = 10; return; function a() {} } b(); alert(a); 上記のコードを使用すると、ブラウザは「1」を警告します。 それが「1」を返す理由はまだわかりません。彼が言うことのいくつかは次のように思い浮かびます:すべての関数宣言は上に持ち上げられます。関数を使用して変数のスコープを設定できます。まだクリックしません。

3
Angularjs、ルート間でスコープを渡す
フォームが複数のページにまたがる状況にあります(理想的ではないかもしれませんが、それはそのようです)。フォーム全体に1つのスコープを設定し、ユーザーが手順に沿って前後に移動すると、状態を簡単に覚えられるようにします。 だから私は非常に疑似コードでやる必要があります: セットする $scope.val = <Some dynamic data> リンクをクリックすると、新しいテンプレートにルーティングされます(おそらく同じコントローラーを使用します)。 $scope.val 最後のページと同じ値である必要があります。 どういうわけか、スコープのデータを永続化することは、これについて正しい方法ですか、それとも他の方法がありますか?もちろん、データベースに保存する以外は、ルート間でスコープが永続化されているコントローラーを作成することもできます。

6
JavaScriptでグローバル変数に未定義の値があることに驚いた
今日、グローバル変数にundefined値がある場合があるのを見て、私は完全に驚きました。 例: var value = 10; function test() { //A console.log(value); var value = 20; //B console.log(value); } test(); 次のように出力します undefined 20 ここで、JavaScriptエンジンがグローバル値をと見なしているのはなぜですかundefined。JavaScriptがインタープリター言語であることを私は知っています。関数内の変数をどのように考慮することができますか? それはJavaScriptエンジンからの落とし穴ですか?
87 javascript  scope 

9
PHP関数でグローバル変数にアクセスする
ほとんどのプログラミング言語のスコープルールに従って、関数内の関数の外部で定義されている変数にアクセスできますが、このコードが機能しないのはなぜですか? <?php $data = 'My data'; function menugen() { echo "[" . $data . "]"; } menugen(); ?> 出力は[]です。
84 php  scope 

3
ECMAScript 2015:forループの定数
以下の2つの(またはどちらでもない/両方の)コードフラグメントのどちらが、完全なECMAScript2015実装で機能する必要がありますか。 for (const e of a) for (const i = 0; i < a.length; i += 1) 私の理解では、最初の例はe反復ごとに初期化されるため、機能するはずです。これiは、2番目のバージョンにも当てはまるはずではありませんか? 既存の実装(Babel、IE、Firefox、Chrome、ESLint)は一貫性がなくconst、2つのループバリアントのさまざまな動作を伴う、の完全な実装を持っているように見えるため、私は混乱しています。また、基準の具体的なポイントがわからないので、よろしくお願いします。

6
Cの共有グローバル変数
Cで共有されるグローバル変数を作成するにはどうすればよいですか?ヘッダーファイルに入れると、リンカーは変数がすでに定義されていると文句を言います。私のCファイルの1つで変数を宣言し、externそれを使用したい他のすべてのCファイルの先頭に手動でsを配置する唯一の方法はありますか?それは理想的ではないようです。

5
AngularUIモーダルのスコープの問題
角度のあるUIモーダルのスコープを理解/使用するのに問題があります。 ここではすぐにはわかりませんが、モジュールとすべてが正しくセットアップされています(私が知る限り)が、特にこれらのコードサンプルはバグを見つけた場所です。 index.html(その重要な部分) <div class="btn-group"> <button class="btn dropdown-toggle btn-mini" data-toggle="dropdown"> Actions <span class="caret"></span> </button> <ul class="dropdown-menu pull-right text-left"> <li><a ng-click="addSimpleGroup()">Add Simple</a></li> <li><a ng-click="open()">Add Custom</a></li> <li class="divider"></li> <li><a ng-click="doBulkDelete()">Remove Selected</a></li> </ul> </div> Controller.js(ここでも重要な部分) MyApp.controller('AppListCtrl', function($scope, $modal){ $scope.name = 'New Name'; $scope.groupType = 'New Type'; $scope.open = function(){ var modalInstance = $modal.open({ …

1
依存スコープを持つネストされたテンプレート
依存スコープとは何ですか?次のエラーのコンテキストでのtypenameの意味は何ですか? $ make g++ -std=gnu++0x main.cpp main.cpp:18:10: error: need 'typename' before 'ptrModel<std::vector<Data> >::Type' because 'ptrModel<std::vector<Data> >' is a dependent scope make: *** [all] Error 1 /* * main.cpp */ #include <vector> #include <memory> template<typename T> struct ptrModel { typedef std::unique_ptr<T> Type; }; template<typename Data> struct ptrType { typedef ptrModel< std::vector<Data> …
79 c++  templates  scope  nested 

1
親スコープの変数と同じ名前の子変数を宣言できるのはなぜですか?
同じ名前の変数がすでにある関数内で宣言されたアクションのパラメーターとして変数名を誤って再利用するコードを最近書きました。例えば: var x = 1; Action<int> myAction = (x) => { Console.WriteLine(x); }; 重複を見つけたとき、コードが完全にコンパイルされて実行されたことに驚きました。これは、C#のスコープについて知っていることに基づいて期待する動作ではありません。Laogda Scope Clarificationなど、いくつかの簡単なグーグル検索により、同様のコードがエラーを生成することを訴えるSOの質問が表示されました。(念のため、サンプルコードをIDEに貼り付けて、実行されるかどうかを確認しました。完全に実行されます。)さらに、Visual Studioで[名前の変更]ダイアログに入ると、最初の名前が​​名前の競合として強調表示されます。x このコードはなぜ機能するのですか?Visual Studio 2019でC#8を使用しています。

1
ブロックスコープを指定したJavascriptのデフォルト引数がiOSでのみ失敗する
try { const val = 'correct value'; (() => { ((arg = val) => { const val = 'ignored value'; alert(arg); })(); })(); } catch (err) { alert(err.message || 'Unknown error'); } コードスニペットを実行する結果を非表示スニペットを展開 OS X Chrome、OS X Safari、Android Chrome、Windows Chrome、Windows Firefox、さらには Windows Edgeでは、「正しい値」を警告します。iOS SafariおよびiOS Chromeでは、「変数が見つかりません:val」という警告が表示されます。 次のスニペットはすべてiOSで機能します。 デフォルトの引数を使用しない(抜粋2): try { const …

1
誰もがこの予期しないV8 JavaScriptパフォーマンス動作を説明できますか?
更新(2020年3月2日) ここでの私の例のコーディングは、V8 JavaScriptエンジンの既知のパフォーマンスの崖から落ちるように正しい方法で構成されていることがわかります... 詳細については、bugs.chromium.orgに関する議論を参照してください。このバグは現在取り組んでおり、近い将来に修正される予定です。 アップデート(2020年1月9日) 以下で説明するように動作するコーディングを単一ページのWebアプリに分離しようとしましたが、そうすると、動作が消えました(??)。ただし、以下に説明する動作は、完全なアプリケーションのコンテキストではまだ存在します。 とはいえ、私はフラクタル計算コーディングを最適化しており、この問題はライブバージョンでは問題ではなくなりました。誰かが興味を持っているなら、この問題を明らかにするJavaScriptモジュールはまだここで利用可能です 概観 ブラウザベースのJavaScriptとWebアセンブリのパフォーマンスを比較するための小さなWebベースのアプリを完成させました。このアプリはマンデルブロ集合の画像を計算し、その画像の上にマウスポインターを移動すると、対応するジュリア集合が動的に計算され、計算時間が表示されます。 JavaScript(「j」を押す)またはWebAssembly(「w」を押す)の使用を切り替えて、計算を実行し、ランタイムを比較できます。 ここをクリックして、動作するアプリを確認してください ただし、このコードを作成する際に、予期しない奇妙なJavaScriptパフォーマンス動作がいくつか見つかりました... 問題の概要 この問題は、ChromeとBraveで使用されているV8 JavaScriptエンジンに固有のようです。この問題は、SpiderMonkey(Firefox)またはJavaScriptCore(Safari)を使用するブラウザでは発生しません。チャクラエンジンを使用しているブラウザでこれをテストできませんでした このWebアプリのすべてのJavaScriptコードはES6モジュールとして記述されています function新しいES6矢印構文ではなく、従来の構文を使用してすべての関数を書き直してみました。残念ながら、これはそれほど大きな違いはありません パフォーマンスの問題は、JavaScript関数が作成されるスコープに関連しているようです。このアプリでは、2つの部分関数を呼び出し、それぞれが別の関数を返します。次に、これらの生成された関数を、ネストされたforループ内で呼び出される別の関数に引数として渡します。 forループが実行される関数と比較すると、ループは独自のスコープに似たものを作成しているように見えます(ただし、本格的なスコープはわかりません)。次に、このスコープ(?)の境界を越えて生成された関数を渡すと、負荷が高くなります。 基本的なコーディング構造 各部分関数は、マンデルブロ集合イメージ上のマウスポインターの位置のXまたはY値を受け取り、対応するジュリア集合を計算するときに反復される関数を返します。 const makeJuliaXStepFn = mandelXCoord => (x, y) => mandelXCoord + diffOfSquares(x, y) const makeJuliaYStepFn = mandelYCoord => (x, y) => mandelYCoord + (2 * x * y) これらの関数は、次のロジック内で呼び出されます。 ユーザーは、mousemoveイベントをトリガーするマンデルブロ集合の画像の上にマウスポインターを移動します …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.