問題タブ [strong-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.

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

java - 高速、コンパクト、ストリーミング可能、多言語、厳密に型指定されたシリアライゼーション形式を探しています

現在、Java プロジェクトで JSON (gzip で圧縮) を使用しています。このプロジェクトでは、多数のオブジェクト (数億) をディスクに格納する必要があります。1 行に 1 つの JSON オブジェクトがあり、JSON オブジェクト内の改行は許可されていません。このようにして、ファイル全体を一度に読み取らなくても、ディスクから行ごとにデータをストリーミングできます。

JSON コードの解析 ( http://www.json.org/java/を使用) は、生データをディスクから取り出したり、圧縮解除したりする (その場で行う) よりも大きなオーバーヘッドであることがわかりました。

理想的には、厳密に型指定されたシリアル化形式で、「このオブジェクト フィールドは文字列のリストです」(たとえば) を指定できます。システムは何を期待するかを認識しているため、すばやく逆シリアル化できます。他の誰かに「タイプ」を与えるだけで、フォーマットを指定することもできます。

また、クロスプラットフォームである必要があります。私は Java を使用していますが、PHP、Python、およびその他の言語を使用している人々と仕事をしています。

したがって、要約すると、次のようになります。

  • 強く型付けされた
  • ストリーミング可能 (つまり、一度にすべてを RAM にロードすることなく、ファイルをビットごとに読み取る)
  • クロスプラットフォーム (Java と PHP を含む)
  • 速い
  • 無料(スピーチのように)

ポインタはありますか?

0 投票する
7 に答える
4381 参照

javascript - javascriptや同様のスクリプト言語は、強く型付けされることでメリットがありますか?

今日は頭がおかしくなった。私はIEデバッグモードでしばらく時間を過ごし、いつものようにWebを閲覧しましたが、多くのエラーが表示されます:)これらのエラーのほとんどは、一部の値が予想とは異なるタイプであるためです(少なくともエラーを解釈する限り)メッセージ)。

JavaScriptや同様のスクリプト言語が強く型付けされない理由は何ですか?言語を「理解しやすく」、アクセスしやすくするだけなのか、それとも「コンパイル時」の欠如が本当の問題なのか。

0 投票する
5 に答える
3211 参照

python - Python 厳密型リスト

Python に eclips を使用していますが、問題に直面しています。多くのプロパティを持つ多くのクラスがあり、宣言されたクラスの 1 つからオブジェクトのリストが必要です。問題は次のとおりです。リストから任意の項目にアクセスしているときに、IDE はその型を認識しません。これは、Python ではその型で変数を宣言していないため、オートコンプリートがなく、クラスに移動してコピーする必要があるためです。属性名。アイデアをより明確にするために:

私が書いた場合、LanguageAutomata クラスの任意のメソッドで: cfgAutomata. 次に、名前属性が表示されません。それに対する解決策はありますか?

0 投票する
6 に答える
7980 参照

java - Java、C、およびC++のループ変数の型制限

Java、C、およびC ++(おそらく他の言語も)がforループ変数で複数の型を許可しないのはなぜですか?例えば:

この場合、ループ変数iがあります。これはループカウンターです。

しかし、スコープが各反復ではなくループに制限されている別の変数が必要な場合があります。例えば:

ループ内でのみ使用したいので、obj.operation()リターンデータを格納しています。メモリに保持したくないし、ループ実行後も表示されたままにしたくない。メモリスペースを解放するだけでなく、の誤った使用によって引き起こされる望ましくない動作を回避するためにも。variablevariablevariable

したがって、ループ変数は便利ですが、型の制限があるため、広くサポートされていません。operation()そのメソッドが長い値を返すと想像してください。これが発生した場合、データをキャストして失うことなく、ループ変数の利点を享受することはできません。次のコードはJavaでコンパイルされません。

繰り返しますが、なぜこのタイプの制限が存在するのか誰かが知っていますか?

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

c++ - C /C++配列タイプを受け入れる関数

g ++は、配列を引数として渡すときに配列サイズの違いを無視しているようです。つまり、以下は。を使用しても警告なしでコンパイルされます-Wall

これで、ポインターを渡す基本的なモデルを理解しました。明らかに、関数をとして定義することができますgetarray(int *a)。ただし、配列サイズを明示的に指定した場合、gccは少なくとも警告を発行することを期待していました。

この制限を回避する方法はありますか?(私はゲストブースト::配列は1つの解決策ですが、C ++に昇格したcスタイルの配列を使用した古いコードがたくさんあります...)

0 投票する
5 に答える
8597 参照

linq - LINQで強く型付けされたオブジェクトをエンティティに初期化する

基本的に2つのエンティティフレームワークオブジェクトのラッパーであるプレーンオールドCLRオブジェクトがあります。これを実行しているので、このラッパーオブジェクトをMVCフレームワークの厳密に型指定されたビューに渡すことができます。私のfooラッパークラスは非常に単純です:

ListFoosWithBars関数についてこれまでに持っているものは、次のとおりです。

明らかにLINQtoEntitiesはパラメーター化された初期化をサポートしていないため、これは機能しません。「LINQ to Entitiesでサポートされているのは、パラメーターのないコンストラクターと初期化子のみです」という例外がスローされます。これと同じ結果を達成する別の方法があるかどうか疑問に思いましたか?

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

c# - プロパティのようなメソッドを参照することはできますか? Validate(x => x.Property) のように

Asp.net MVC 用に、非常に厳密に型指定されたタイプ セーフなプロジェクトをビルドする必要があるためです。しかし、View ページの構文の多くは、タイプ セーフな変数ではないことがわかりました。次の例を見てください。

それ以外の

上記のコードのようなものを作成することは可能ですか? 強く型付けされた非常に美しいソースコードです。

アップデート!

式ツリーでは不可能であることがわかりました。次のコードを見てください。

1 つのアクションのみを含むコントローラー クラス。public class Controller1 { public View Action1() { null を返します。} }

式コードを見てください。

結果は「Controller1:Action1」!

アップデート2!

次のコードは、厳密に型指定された begin フォームの最終的なコードです。

したがって、次のパターンを使用して呼び出すことができます。

ありがとう、

0 投票する
6 に答える
3094 参照

strong-typing - (強いvs弱い)型付きAND(静的vs動的)型付き言語とムーアの法則

この問題に直面している人の数はわかりません。python、php、javascriptのような弱い/動的に型付けされた言語で数日間プログラミングを行うと、c ++、Java、.netのような強く型付けされた言語との接触が失われます。私は最近、人々がプログラミングを愛するpythonやrubyのような言語を聞きました。

弱く/動的に型付けされた言語でのプログラミングは非常に簡単ですが、c ++、Javaなどの言語との接触を失う危険性があります。プロセッサは現在非常に強力になっており、ムーアの法則によれば、時間とともに指数関数的に速度が向上します。したがって、組み込み言語からc ++、javaなどの高級言語に移行したときに同様のことが起こったため、効率は問題にならない可能性があります。

  • では、世界は弱く/動的に型付けされた言語にシフトしているのでしょうか?
  • 弱い/動的に型付けされた言語は、将来、強く型付けされた言語に取って代わりますか?
  • 強く型付けされた言語が必須であり、現在および近い将来に置き換えることができないフィールドはありますか?
0 投票する
5 に答える
4789 参照

c# - 厳密に型指定された ASP.NET MVC セッションを行うより良い方法

ASP.NET MVC プロジェクトを開発しており、厳密に型指定されたセッション オブジェクトを使用したいと考えています。このオブジェクトを公開するために、次の Controller 派生クラスを実装しました。

これにより、コントローラーごとにセッション オブジェクトを定義できます。これは、コントローラー分離の概念に沿ったものです。より良い/より「正しい」方法、おそらくMicrosoftによって公式にサポートされているものはありますか?

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

vb.net - 複雑なオブジェクトの複数のキーを使用してLINQクエリを強く入力する

LINQグループ化クエリで使用されるオブジェクトを定義して、強く型付けできるようにする方法がわかりません。

2つの複雑なオブジェクトをキーとして使用するグループ化クエリを作成しました。クエリは機能しますが、戻りオブジェクトタイプを宣言できるようにしたいと思います。

私は複雑なタイプを持っています...

リストに集めて、2つの複雑なキーに基づいてグループ化しています。

すべてが機能しますが、データ収集を処理するときにすべてが匿名で宣言されるのは気になります。これは、グループ化されたリストを作成するオブジェクトが1つのアセンブリにあり、WebサービスとWebサイトで使用されている場合に特に厄介です。

返されるIEnumberableを強く入力できるようにしたいのですが、IGroupingインターフェイスを宣言する方法がわかりません。

次のようにデータ構造を横断できるはずです...

しかし、これまでのところ、IGroupingタイプを宣言する方法を理解できていません。