タグ付けされた質問 「data-types」

4
「長い」禁止は理にかなっていますか?
今日のクロスプラットフォームC ++(またはC)の世界では、次のことができます。 Data model | short | int | long | long long | pointers/size_t | Sample operating systems ... LLP64/IL32P64 16 32 32 64 64 Microsoft Windows (x86-64 and IA-64) LP64/I32LP64 16 32 64 64 64 Most Unix and Unix-like systems, e.g. Solaris, Linux, BSD, and OS X; z/OS …

20
静的型付けはトレードオフの価値がありますか?
主にタイプセーフがないPythonでコーディングを開始し、次にC#とJavaに移行しました。Pythonでの作業が少し速くなり、頭痛が少なくなることがわかりましたが、C#およびJavaアプリの複雑度ははるかに高いため、Pythonに本当のストレステストを与えたことはありません。 JavaとC#のキャンプは、タイプセーフティが適切に設定されていないように聞こえます。ほとんどの人は、あらゆる種類の恐ろしいバグに遭遇し、その価値以上の問題を抱えています。 これは言語の比較ではないため、コンパイル済みと解釈済みなどの問題に対処しないでください。型の安全性は、開発の速度と柔軟性に打撃を与える価値がありますか?どうして? 動的型付けのほうが速いという意見の例を望んでいた人たちに: 「開発中に動的に型指定された言語を使用します。これにより、フィードバック、ターンアラウンドタイム、および開発速度が速くなります。」- http://blog.jayway.com/2010/04/14/static-typing-is-the-root-of-all-evil/

16
「不明」と「欠損」の違いを保持したまま、変数に「不明」と「欠損」の値を保存する方法を教えてください。
これを「アカデミック」な質問と考えてください。私は時々NULLを避けることについて疑問に思っていましたが、これは満足のいく解決策を思い付かない例です。 測定が不可能(または欠落)であることがわかっている場合に測定値を保存するとします。NULLを避けながら、変数にその「空の」値を格納したいと思います。また、値が不明な場合もあります。そのため、特定の時間枠の測定値がある場合、その期間内の測定値に関するクエリは3種類の応答を返す可能性があります。 その時点での実際の測定値(たとえば、を含む数値0) 「欠落」/「空」の値(つまり、測定が行われ、その時点で値が空であることがわかっている)。 不明な値(つまり、その時点で測定は行われていません。空になることもありますが、他の値になることもあります)。 重要な説明: get_measurement()「空」、「不明」、および「整数」型の値のいずれかを返す関数があると仮定します。数値があるということは、戻り値(乗算、除算など)で特定の操作を実行できることを意味しますが、そのような操作をNULLで使用すると、キャッチされないとアプリケーションがクラッシュします。 NULLチェックを回避して、コードを記述できるようにしたいと思います。たとえば(擬似コード): >>> value = get_measurement() # returns `2` >>> print(value * 2) 4 >>> value = get_measurement() # returns `Empty()` >>> print(value * 2) Empty() >>> value = get_measurement() # returns `Unknown()` >>> print(value * 2) Unknown() printNULLが使用されていないため、どのステートメントも例外を引き起こしていません。したがって、空の値と不明な値は必要に応じて伝播し、値が実際に「不明」または「空」であるかどうかのチェックは、本当に必要になるまで遅らせることができます(値の保存/シリアル化など)。 サイドノート:NULLを避けたい理由は、主に頭の体操です。何かをやりたい場合、NULLを使用することに反対しませんが、それらを回避することでコードがより堅牢になる場合があることがわかりました。

9
リレーショナルデータベースは、各列に定義済みのデータ型を設定することで何が得られますか?
私は今、SQLデータベースを使用していますが、これは常に興味をそそりますが、Google検索はあまり現れません。なぜ厳密なデータ型なのでしょうか? たとえば、バイナリデータとプレーンテキストデータの区別が重要であるなど、いくつかの異なるデータ型がある理由を理解しています。バイナリデータの1と0をプレーンテキストとして保存するのではなく、バイナリデータを独自の形式で保存する方が効率的であることを理解しています。 しかし、私が理解していないのは、非常に多くの異なるデータ型を持つことの利点です: なぜmediumtext、longtextとtext? なぜdecimal、floatとint? 等 「この列のエントリにはプレーンテキストデータが256バイトしかありません」とデータベースに伝えることの利点は何ですか。または「この列には最大16,777,215バイトのテキストエントリを含めることができますか?」 パフォーマンス上のメリットはありますか?もしそうなら、手作業の前にエントリーのサイズを知ることがパフォーマンスに役立つのはなぜですか?それとも、まったく別のものですか?

5
Javaが型推論を行わないのはなぜですか?
私はいつも、Javaが言語であり、そのVMが非常に成熟していることを考えると、Javaが型推論を行わない理由を常に疑問に思っていました。GoogleのGoは、優れた型推論を備えた言語の例であり、必要な入力の量を減らします。この機能がJavaの一部ではない背後に特別な理由はありますか?


8
プリミティブデータ型とはどういう意味ですか?
プリミティブデータ型の私の理解は 暗黙的に言語によって提供されるデータ型です(その他はユーザー定義のクラスです) そのため、言語ごとに異なるデータ型のセットがあり、特定の言語のプリミティブと見なされます。そうですか? 「基本データ型」と「組み込みデータ型」の違いは何ですか。ウィキペディアによると、プリミティブデータ型は2つのうちのいずれかです。 PS-なぜ "string"型は、JavaではなくSNOBOL4でプリミティブ型と見なされるのですか?
42 data-types 

6
変数データ型を明示的に定義するか、キーワード「var」を使用しますか?[閉まっている]
C#では、すべての変数宣言に汎用のvarキーワードを使用することをお勧めしますか?はいの場合、次のステートメントの10進数のMなど、変数宣言内のリテラル値にこれらの特殊文字を記載する必要がありますか? var myDecimal = 14.5M; それが違いを生むなら、私はC#でWeb開発をしようとしています。

14
リストが利用可能なときに配列を使用する理由はありますか?[閉まっている]
List<T>C#では、配列でできることはすべて実行できるように思われます。また、配列と同じくらいメモリとパフォーマンスが効率的であるようです。 それでは、なぜ配列を使用したいのでしょうか? APIや他の外部制約(メイン関数など)で配列を使用する必要がある場合については明らかに質問していません...自分のコードで新しいデータ構造を作成することについてのみ質問しています。
30 c#  data-types 

8
API要求/応答で空の文字列、nullを使用するか、空のプロパティを削除します
スキーマレスJSON形式のように、APIを介してオブジェクトを転送する場合、存在しない文字列プロパティを返す理想的な方法は何ですか?下記のリンクの例のように、これを行うためのさまざまな方法があることを知っています。 nullを避ける nullを返す 空のプロパティを削除 私は過去にnullを使用したことがあると確信していますが、nullを使用する正当な理由はありません。データベースを処理するときにnullを使用するのは簡単なようです。しかし、データベースは実装の詳細のようで、APIの反対側の関係者には関係ありません。たとえば、おそらく値を持つプロパティ(null以外)のみを保存するスキーマレスデータストアを使用します。 コードの観点から見ると、文字列関数を1つの型string(null以外)のみで動作するように制限すると、証明が容易になります。nullを避けることもOptionオブジェクトを持つ理由です。したがって、要求/応答を生成するコードがnullを使用しない場合、APIの反対側のコードもnullの使用を強制されないでしょう。 nullの使用を避ける簡単な方法として、空の文字列を使用するというアイデアが好きです。空の文字列に対してnullを使用することについて聞いた1つの議論は、空の文字列はプロパティが存在することを意味するということです。私は違いを理解していますが、それが単なる実装の詳細なのか、nullまたは空の文字列を使用して実際の違いが生じるのかどうかも疑問に思います。また、空の文字列は空の配列に似ているのだろうかと思います。 それでは、これらの懸念に対処する最善の方法はどれですか?転送されるオブジェクトの形式(スキーマ/スキーマレス)に依存しますか?

9
真の「日付のみ」のデータ型がないのはなぜですか?
本当に「たった1日」のデータセットにDateTime値を使用しなければならないことに、とてつもなくイライラしています。誕生日は最も一般的な例ですが、これは常にビジネスアプリケーションで発生します。 「日付のみ」のレコードの「時刻」部分を「正午」に設定することに慣れてきました(タイムゾーンに関係なく日付が変更されることを回避します)。これはハックのように思え、私はこの問題を巡るジュニア開発者からのバグを永遠に見つけています。 時間は常に固定小数点に対して相対的です。午後4時は、子午線または正午の4時間後です。移動中の太陽の最高点は観測可能であり、座標系を設定できます。正午の3時間前(前子午線)、正午の2時間後、1970年1月1日から1441899402938ミリ秒。デカルト世界で育った人々にとって、これは2番目の性質です。 ただし、カレンダーはデカルトより前のものです。私の主張は、モジュロ関数が適用される列挙としてより適切に考えられているということです。月曜日が日曜日に続き、日曜日が土曜日に続くという事実がわかるまで続きます。正負はありません。モジュラスまたは絶対値です。 同様に年が繰り返されます。誕生日、記念日、子供の誕生日など、365日ごと(またはそれ以降)に特別な日がいくつかあります。ビジネススケジューリングアプリケーションには、7日ごと、月の最初の火曜日などの会議の例がたくさんあります。これを浮動小数点数にマッピングすることができます。実際には、これを上記の数にマッピングすることで、従来の方法では非常に困難だった多くの問題を解決できますが、それが唯一の方法ではありません。 DateTimesを使用してDatesを保存するという「丸い穴の四角い釘」の性質に対する認識と理解は、私の意見では優れたプログラマーになります。 Dateクラスを定義する際にスケジューリングアプリケーションとして明示的に意図されたアプリケーションに価値はありますか、それとも「正午にすべての時間を設定する」ことが最善のアプローチですか。DateTimeを使用し、Timeコンポーネントを正午に設定すると、どのような問題が発生する可能性がありますか?そのようなアプローチでタイムゾーンのシフトを考慮することができますか?私はMomentJSを使用しましたが、それはちょうど良いDateクラスだと思います。

3
レクサーがそのパーサーに返すトークンのデータ型は何ですか?
タイトルで述べたように、レクサーはどのデータ型をパーサーに返す/与える必要がありますか?ウィキペディアが持っている字句解析の記事を読んだとき、それは次のように述べました: コンピュータサイエンスでは、字句解析とは、一連の文字(コンピュータプログラムやWebページなど)を一連のトークン(識別された「意味」を持つ文字列)に変換するプロセスです。 しかし、上記の声明と完全に矛盾して、別のサイトで質問した別の質問(好奇心があればコードレビュー)が回答されたとき、回答者は次のように述べました: 字句解析プログラムは通常、文字列を読み取り、これを語彙素のストリームに変換します。語彙素は数字のストリームである必要があります。 そして彼はこの視覚を与えました: nl_output => 256 output => 257 <string> => 258 後の記事で彼はFlex、既存のレクサーについて言及し、それを使って「ルール」を書くほうが、レクサーを手で書くよりも簡単だと言った。彼は私にこの例を与え始めました: Space [ \r\n\t] QuotedString "[^"]*" %% nl_output {return 256;} output {return 257;} {QuotedString} {return 258;} {Space} {/* Ignore */} . {error("Unmatched character");} %% 私の洞察を深め、より多くの情報を得るために、WikipediaのFlexに関する記事を読みました。Flexの記事では、トークンを使用して、次の方法で一連の構文規則を定義できることが示されました。 digit [0-9] letter [a-zA-Z] %% "+" { return PLUS; } "-" …
21 data-types  lexer  flex 

24
プログラミング言語で興味深いまたはユニークなタイプ?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 整数、浮動小数点、文字列、および時折10進型を見てきました。あなたが遭遇した最も奇妙な、ユニークな、または有用なタイプのいくつかは、有用であるかどうか?

7
Javaに異なるサイズの数値のプリミティブがあるのはなぜですか?
Javaではプリミティブ型がありbyte、short、intとlongとのために同じものfloatとdouble。プリミティブ値に使用するバイト数を設定する必要があるのはなぜですか?渡される数値の大きさに応じて、サイズを動的に決定することはできませんでしたか? 私が考えることができる2つの理由があります: データのサイズを動的に設定することは、動的に変更できる必要があることを意味します。これにより、パフォーマンスの問題が発生する可能性がありますか? おそらくプログラマーは、誰かが特定のサイズよりも大きな数を使用できるようにしたくないでしょう。これにより、制限することができます。 私はまだ、シングルintとfloatタイプを使用するシンプルな方法で多くのことが得られたと思いますが、Javaがこの方法を採用しないことに決めた特別な理由はありましたか?

4
Cで変数のデータ型を指定する必要があるのはなぜですか
通常、Cでは、変数宣言でデータの種類をコンピューターに伝える必要があります。たとえば、次のプログラムでは、2つの浮動小数点数XとYの合計を出力します。 #include<stdio.h> main() { float X=5.2; float Y=5.1; float Z; Z=Y+X; printf("%f",Z); } 変数Xの型をコンパイラーに伝える必要がありました。 コンパイラXはそれ自身で型を決定できませんか? はい、これを行うとできます: #define X 5.2 コンパイラーに次のようなタイプを伝えることなく、プログラムを作成できるようになりXました。 #include<stdio.h> #define X 5.2 main() { float Y=5.1; float Z; Z=Y+X; printf("%f",Z); } したがって、C言語には何らかの種類の機能があり、それを使用してデータのタイプを独自に判別できることがわかります。私の場合、それXはfloat型であると判断されました。 main()で何かを宣言するとき、なぜデータのタイプに言及しなければならないのですか?なぜコンパイラは、自身の中に変数のデータ型を判断することはできませんmain()、それはでませんよう#define。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.