問題タブ [dynamic-typing]
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.
c# - .NETジェネリッククラスインスタンス-可変データ型を渡す
タイトルが示すように、私は可変データ型をテンプレートクラスに渡すのに疲れています。このようなもの:
コンパイル時に処理されるテンプレートと関係があると思いますが、そこにマークが付いていなくても、とにかく問題は解決しません。Reflectionを使用してテンプレートクラスをインスタンス化することに関する関連情報も見つかりません。
(どのように)実行時に動的に型付けされたリポジトリのインスタンスを作成できますか?
design-patterns - クラスが保持するリストを反復するためのパターンです (動的に型付けされた OO 言語)
1 つまたは複数のリストを保持するクラスがある場合、他のクラスがそれらのリストを (getter を使用して) フェッチできるようにする方がよいでしょうか? またはdoXyzList/eachXyzList
、そのリストの型メソッドを実装し、関数を渡し、そのオブジェクトに含まれるリストの各要素でその関数を呼び出すには?
私はこれを大量に行うプログラムを書きましたが、これらすべてのリストを渡すのが嫌いでした.classに含まれるリストを返すためA
にクラス内のメソッドを呼び出すクラス内のメソッドを使用することもありました。が 1つまたは複数含まれています。B
C
B
C
C
(この質問は、ルビーやスモールトークなどの動的に型付けされたオブジェクト指向言語に関するものであることに注意してください)
元。(それは私のプログラムで出てきました):
Person
スケジューリング設定を含むクラスscheduler
と、それらにアクセスする必要があるクラス。
c# - 実行時に一連の番号付き変数を作成するにはどうすればよいですか?
皆さん、一連の を作成する必要があります。それぞれのオブジェクトには不明な起源のオブジェクトがArrayList
含まれており、各インスタンスは個別のローカル変数に割り当てられています。
これまでのところ、とても良いです...しかし、各ローカル変数の名前も非常に特定のパターンに従う必要があります。名前は「oArr」で始まり、シーケンス内の特定の配列の位置を反映する1つ以上の数字が続きます。さらに、コンパイル時に、これらの配列がいくつ必要になるか、したがってローカル変数がいくつ必要になるかわかりません。
これはおそらく、C# 4.0 で動的型を使用できるようになったことで解決できる問題だと思いますが、私はそれらの使用法にまったく慣れていません。このようなコードをどのように取ることができますか...
...そして、上記の基準に一致し、実際にコンパイルされるものに変換しますか?
あるいは、この問題に対するより単純で健全なアプローチはありますか?
programming-languages - すべての批判に値する動的型付き言語?
企業でのプログラミング言語の選択に関するインターネット上の記事をいくつか読んだことがあります。最近、Ruby、Python、PHP、Erlangなど、多くの動的型付き言語が普及しています。しかし、多くの企業は依然としてC、C ++、C#、Javaなどの静的型付き言語を使用しています。
もちろん、静的型付き言語の利点の1つは、プログラミングエラーが実行時ではなく、コンパイル時に早期に検出されることです。ただし、動的型付き言語には利点もあります。(ウィキペディアでもっと)
企業がErlang、Ruby、Pythonなどの言語を使い始めない主な理由は、それらが動的型付けされているという事実にあるようです。それがStackOverflowの人々がErlangに反対する主な理由でもあるようです。なぜErlangに対して「反対」を決めたのかを参照してください。
しかし、企業では動的型付けに対して強い批判があるようですが、なぜそれが強いのかはよくわかりません。
本当に、企業で動的型付けに対してそれほど批判的なのはなぜですか?それは本当にプロジェクトのコストにそれほど影響しますか、それとも何ですか?しかし、多分私は間違っています。
dynamic-typing - 動的型付けの利点はどこにありますか?
静的に型付けされた言語では実現不可能な方法で、動的型付けをどのくらいの頻度で利用していますか?
私が興味を持っているのは、これらが実際の (デモンストレーションではなく) コード内でどのくらいの頻度で使用されているかということです。
objective-c - Objective-C スーパータイプ ポリモーフィズム
私はObjective-Cにかなり慣れていないので、オブジェクトを割り当てるときにコンパイラの警告を受けずにオブジェクトをスーパータイプとして型付けできるかどうか、または同じことを達成するための認識された方法があるかどうか疑問に思っていますか?
これがタイプ id の目的であることは理解していますが、合成されたプロパティを持つ基本クラスがあり、id を使用しようとすると、おそらく動的であるため、「構造体でも共用体でもないものでメンバー 'x' を要求する」というビルド エラーが発生します。入力は、オブジェクトにメッセージを送信する場合は問題ありませんが、合成されたプロパティにアクセスする場合は問題ありません。
たとえば、Java では次のようにします。
私は現在、Objective-C で上記の作業を行っていますが、コンパイラの警告があります:「個別の Objective-C タイプからの割り当て」
OK、これが Objective-C インターフェースです。必要に応じて実装を追加できます。それは複合パターンです:
static-typing - 動的型付け言語での洗練されたソリューションの例を知っていますか?
(型情報を除いて)まったく同じ構文を持つ2つの言語を想像してみてください。ただし、一方は静的に型付けされ、もう一方は動的型付けを使用します。次に、静的型付け言語で記述されたすべてのプログラムについて、すべての型情報を削除することにより、同等の動的型付けプログラムを導出できます。これは逆に必ずしも可能ではないため、動的に型付けされたプログラムのクラスは、静的に型付けされたプログラムのクラスよりも厳密に大きくなります。この動的型付けプログラムを呼び出しましょう。変数を型にマッピングして静的型付けにすることはありません。"実際の動的型付けプログラム」。
どちらの言語族も間違いなく完全なものであるため、このような実際の動的型付けプログラムには、まったく同じことを行う静的型付けプログラムが存在することは間違いありませんが、「経験豊富なプログラマーは、非常に洗練されたコードを記述できます。動的型付け言語」。したがって、私は自分自身に問いかけます。実際の動的型付けプログラムの良い例はありますか。同等の静的型付けプログラムは明らかにはるかに複雑で、「エレガント」ではありません(それが意味するものは何でも)。
そのような例を知っていますか?
duck-typing - ダックタイピングなしのダイナミックタイピング?
私は、実行時にオブジェクト/非オブジェクト指向構造の型情報をチェックし、ある種の型エラーをスローすることを意味する動的型付けに慣れています。別のタイプの動的型付けはありますか (詳細を参照してください)。
actionscript-3 - Object、*、およびno typeの違いは何ですか?
これらの3つの宣言に違いはありますか?
ASにそうでないものはありObject
ますか?
iphone - クラス型変数に特定のスーパークラス要件を指定できますか?
特定のクラスのインスタンスを初期化するクラスを作成しています。このクラスは、すべて共通のスーパークラスからサブクラス化されたいくつかの異なるタイプのクラスを初期化するために使用されます。現在、インスタンス変数を使用しています。
クラスタイプを保存します。メソッドがtemplateClassでサポートされていないというコンパイラの警告が表示されます。これらの警告を抑制したり、テンプレートクラスが特定のクラスのサブクラスでなければならないことを指定したりする方法はありますか?
また、これはObjective-cでこれを実行するための理想的な方法ですか?使用するクラスを指定する別の方法はありますか?
助けてくれてありがとう!
編集:私が書いているクラスは、ランダムに選択された場所にスプライトを作成し、それらを制限するためのいくつかの変数を使用するように設計されています。このクラスは、rezzesするクラスにinitWithX:(int)pos yVariance:(int)variance
メソッドがあることを期待しています。これは、あなたが言及したプロトコルを使用して定義できると思います。作成する必要のあるスプライトのタイプごとに、rezzingクラスの複数のインスタンスを作成します。initWithTemplateClass:(Class)templateClass
作成するスプライトのタイプを定義するためにrezzingクラスを送信できるようにしたいと思います。これが正しい方法であるかどうかはわかりませんが、コンパイラーは、このメソッドinitWithX:(int)pos yVariance:(int)variance
がtemplateClassで使用できないと投稿しているためです。私はこれについて私が行っている方法に問題があると思います。警告を表示しているコードは次のとおりです。