問題タブ [static-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 投票する
7 に答える
852 参照

c# - 見栄えを良くするために、Java のジェネリックで何ができるでしょうか。

リストの要素のプロパティの 1 つを使用Listして a を aに変換するこのメソッドがあります。Map

要するに、次のようになります。

イヤッ!..

私はジェネリックが大好きで、以前は Java を使用していましたが、キャストエブリシングの時代には戻りたくありませんが、ジェネリックにジェネリック要素が要素として含まれていると、問題が発生します。

Java1.7 では " diamond " 演算子を使用できることはわかっていますが、別の方法があるはずです。

これは、非汎用バージョンでは次のようになります。

おおよそ、私はそれをコンパイルしようとしませんでした。

他の言語はこれをどのように処理しますか? たとえば C#?、Scala? 私は SML や Haskell が処理する方法がとても気に入りましたが、あまりにも多くの魔法が害を及ぼす可能性があると思います (ただし、これはもちろん主観的です)

これに対する回避策はありますか?

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

clojure - clojureシーケンスタイプ

シーケンスの正しいタイプは何ですか?私はこのコードを持っています:

しかし、私はを書くことができるので、型の要件を正しく強制しているようには見えません(new MethodInfo 1 2)

0 投票する
8 に答える
2532 参照

python - Python 型チェック

重複の可能性:
Python での静的型チェックのためのツール

ほとんどの場合、Python で任意の型を選択して好きな場所にドロップし、Duck の型付けに任せることができるという事実が気に入っています。しかし、どうすればコンパイル時間が経過するのを止めることができますか。Unit Tesingに頼らずに、コンパイル時に必要なときに何らかの健全性チェックを強制する方法はありますか?

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

java - ジェネリック スタック メソッド

に示すように、次のメソッドを使用してこのスタック クラスを作成しています。

//インターフェイス ISortableStack は [here][1] です (コメントは、必要なメソッド シグネチャを説明しています)。

[1] :http://stackoverflow.com/questions/7130901/Java-stack-implementation

ここで、本体クラスを作成しようとすると、次のようになります。

ISortableStack で次のようにエラーをスローします: 非静的型への参照を作成できません。ISORTABLESTACK を起動できません

インターフェイスを使用してメニュー駆動型のプログラムを作成したいと考えています。私は Java GENERICS とコレクションが苦手で、課題の提出がかなり遅れています。ヘルプ/指示をいただければ幸いです。

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

python - RPythonで静的に入力されるものは何ですか?

RPython(Pythonのサブセット)は静的に型付けされているとよく言われます。(例:ウィキペディア。)

最初は、Pythonにそれをどのように追加するのか疑問に思いassert isinstance(arg1, ...)、各関数の先頭などにステートメントを追加する要件を追加したのではないかと思いました(しかし、私はそれを本当に信じられませんでした)。

次に、いくつかのRPythonコードを調べましたが、静的に型指定されているようには見えません。多くの場合、コンパイラーは、関数の引数が特定のタイプのみである可能性があることを証明できる可能性がありますが、すべての場合に確実にそうであるとは限りません。

たとえば、これは:のRPython実装ですstring.split

RPythonに関するPyPyのドキュメントでは、「変数には最大で1つのタイプの値を含める必要があります」と書かれています。

では、関数の引数も変数としてカウントされますか?または、RPythonはどのような意味で静的に型付けされていますか?それとも、これは実際に誤解されていますか?

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

java - JavaスタイルのGroovyはJavaと同じくらい高速ですか?

私が正しく理解していれば、Groovyは動的に型付けされますが、ほとんどJavaのスーパーセットであるため、静的型情報がオプションで提供される場合があります。これは、複数の言語を使用する際の摩擦を避けながら、パフォーマンスが重要な部分が少ないものを作成する場合に役立ちます。タイプ注釈は、パフォーマンスが重要な部分にのみ提供できます。

Javaのようなサブセットが使用され、静的型アノテーションが提供される関数/クラスでJavaの代わりにGroovyを使用すると、パフォーマンスが低下しますか?

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

scala - Web 開発フレームワークが言語の静的機能を回避する傾向があるのはなぜですか?

Lift を使い始めたとき、リフレクションを多用している (またはそうしているように見える) ことに少し驚きました。JSP での私の経験も同様でした。

私は Web 開発にかなり慣れていないので、これらのツールがどのように機能するかはよくわかりませんが、疑問に思っているのは、

  1. リフレクションの使用を奨励する Web 開発の側面は何ですか?

  2. リフレクションを使用しない方法で、(1) テンプレート ページからのコードの参照 (2) オブジェクト リレーショナル マッピングを処理する (静的に型付けされた言語の) ツールはありますか?

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

haskell - ネストされたデータ構造を更新するためのHaskellイディオムはありますか?

野球選手、チーム、コーチの統計を追跡するために、次のデータモデルがあるとします。

ここで、通常はステーキ狂信者であるマネージャーがさらに多くのステーキを食べたいとしましょう。そのため、マネージャーの食事のステーキ含有量を増やすことができる必要があります。この関数の2つの可能な実装は次のとおりです。

1)これは多くのパターンマッチングを使用し、すべてのコンストラクターのすべての引数の順序を正しく取得する必要があります...2回。それはあまりうまくスケーリングしないか、非常に保守可能/読みやすいようです。

2)これは、Haskellのレコード構文によって提供されるすべてのアクセサーを使用しますが、醜く反復的であり、保守と読み取りが難しいと思います。

私の質問は、これらの1つが他よりも優れているのか、それともHaskellコミュニティ内でより好まれているのかということです。これを行うためのより良い方法はありますか(コンテキストを維持しながらデータ構造の奥深くで値を変更するため)?効率については心配していません。コードの優雅さ/一般性/保守性だけを気にしています。

Clojureにこの問題(または同様の問題?)があることに気づきました: -関数型プログラミングとHaskellおよび静的型付けのコンテキストでupdate-in理解しようとしていると思います。update-in

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

ocaml - OCaml:特定のタイプの値を見つける

どの種類の値が最初であるかを見つける必要があるいくつかの値のリストがあります:

find_first内のすべてのタイプのMyTypeに触れることなくこれを行う方法はありますか?2つの値のタイプを比較することは可能ですか?ありがとうございました。

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

types - 静的に型付けされた関数型言語はありますか?

私は静的型付けのバックグラウンドから来て関数型プログラミングを調査していますが、動的型付けに完全に興奮しているわけではありません。どんなオプションがあるのか​​気になります。

開始する1つの答え:ActionScript 3は静的に型付けされており、いくつかの機能パラダイムを提供しますが、AS3プログラムはそれらを使用しないことがよくあります。