タイプ定義とは何ですか?

データ型について読む場合、「型定義」は、その意味を事前に説明せずに使用されることがよくあります。

たとえば、 https://en.wikipedia.org/wiki/Type_system には、「… C ++には型の定義 …”

たとえば、の違いを明確にするためのヘルプ>および型の定義は大歓迎です!

コメント

  • タイプとは何か知っていますか?次に、型の定義は、用語が示すように、型の定義です。 '本当の質問がここにあるかわかりません。

回答

型の「定義」とは、1つ以上の既存のデータ型で構成される新しい型を構築する行為です。たとえば、「複素数」タイプは、「実数」の順序対として宣言されることがよくあります。

Type Complex Real a Real b End 

aとbは実数部と虚数部です。 。

この擬似コードのサンプルは「型定義」です。

コメント

  • 私は'これが'に求められていることだとは思わない…抽象データ型の定義はもちろん型の定義ですが、強いとは何の関係もありませんまたは弱い型付け(質問の一部)

回答

「TheC ++ ProgrammingLanguage」から-Bjarne著C ++の作成者であるStroustrup。

型は、可能な値のセットと(オブジェクトの)操作のセットを定義します。

また、次の定義は同じ本から取得した型と相互に関連しています

宣言はステートメントですプログラムに名前を導入します。名前付きエンティティのタイプ

オブジェクトは、あるタイプの値を保持するメモリです。

値は、タイプに従って解釈されるビットのセットです。

変数は名前付きオブジェクトです

コメント

  • これは' タイプ定義について言及していません。

回答

変数には、整数、実数、文字など、さまざまな種類の値を含めることができます。これは、変数のTYPEと呼ばれます。一部の言語は動的に型指定されます。つまり、インタプリタまたはコンパイラが変数のタイプを決定します。静的型付き言語では、変数を宣言するときに自分で型を定義する必要があります。これが型の定義です。

強い型の静的言語では、ルールは異なる型を混在させることを禁じています。たとえば、実数と整数を追加する場合は、整数を明示的に実数にキャストする必要があります。

弱い型の言語では、型を混在させることができます。ただし、低レベルのビットパターンはタイプによって異なるため、望ましくない結果が生じる可能性があります。

ほとんどの言語はその中間にあります。明示的なキャストが必要なためコードが重くなる一方で、望ましくない影響が受け入れられないことは明らかです。したがって、ほとんどのコンパイラは、一部の標準操作に対して暗黙的なキャストを実行します。その場合、実数と整数を追加すると、暗黙的に実数へのキャストが引き起こされます。

コメント

  • " pe "とは?また、'最初の段落の後に書いた'が質問にどのように関連しているかわかりません。
  • @ David:pe = exempli gratia =例のために=たとえば…文" … C ++には型定義に関するより強力なルールがあるため… "は、私の意見では、質問は弱い型と強い型のコンテキストで行われることを示しています。
  • Aha –that ' s " eg "、英語-編集済み。
  • 確かにそうです。私の間違い。
  • この回答は、型と型システムに関するさまざまな深刻な誤解を示しています。この回答の事実上すべての文は、正しくない、紛らわしい、または誤解を招くものです。まず、型システムは変数だけではありません。3+'a'は変数を含みませんが'型チェックされます。動的に"入力された"言語の実装は' t " "の種類を決定します。暗黙的な変換では、'言語が動的に"より"または"弱く"と入力しました。一般に、静的および動的な"タイピング"は、スペクトルの両端ではなく、単に異なることについて完全に話しているだけです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です