ジャパネットたかたcm ソング
ジャパネットたかたcm ソング 列挙
このページは 2008年 12月 01日 10時27分35秒 にクロールした 列挙の検索キーワードコンテツです。 |
ジャパネットたかた cm ソング 列挙型 - Wikipediaとは? |
列挙型(れっきょがた、enumerated type)とは、コンピュータプログラミングにおいて、プログラマが選んだ各々の識別子をそのまま有限集合として持つ抽象データ型である。列挙型は一般に番号順を持たないカテゴリ変数(カードの組のように)として使われる。実行時には、列挙型は整数で実装されることが多い(各々の識別子は異なる整数値を持つ)。 また列挙型は、整数を使用する場合と比較して、明示的にマジックナンバーを使用するよりもプログラムソースの可読性を改善するのに役立つ。言語によっては、列挙型の整数表現はプログラマに見えないようになっていることもあり、これによりプログラマが列挙値に対して算術演算を行うような乱用を防いでいる。 列挙値の順序は書いた順番になる。列挙型は順序型 ordinal typeであり、prec、succ関数は、列挙の前または次の値を与え、 ord は列挙値を整数表現に変換する。しかし、標準Pascalでは数値型から列挙型への変換できない。拡張されたPascalは拡張されたsucc関数経由でこの機能性を提供する。他のPascal派生言語の一部では、型キャストで変換可能なものもある。 C言語のオリジナルのK&Rに列挙型は存在しなかったが、ANSI標準 (C89)で追加された。Cでは、列挙は明示的にenumキーワードを宣言することで生成できる。それは構造体と共用体宣言を連想させる: Cは列挙値の小さな整数表現を直接プログラマに晒す。整数と列挙値は自由に変換可能であり、列挙値でも全ての数値演算が可能となっている。結果として、列挙体に定義されていない値すら取りえることもある。事実、言語仕様によると、上記のコードはint型の定数としてCLUBS、DIAMONDS、HEARTS、SPADESを定義しているが、これらがその型の変数に保存されるときは、(暗黙裡に)enum cardsuitに変換されるだけである。 は、ビット演算によってenum cardsuitとして表現された一組の数学的な集合を許可する型を定義するために使われる。 C++はCから直接引き継いだ列挙型を持っている。しかし列挙定数は、int型ではなく基の列挙型となる(ただしint型へ昇格できる)。このため、整数型と列挙型との間で多重定義できる。また、列挙型は利用者定義型の一種であるということから、列挙型に対しての演算子多重定義も可能となっている。 Javaの型システムは、整数から分離された型として列挙を扱うが、(ordinal()メソッドを使用してenum値の整数表現を取得できることを除き)enumと整数値との混合演算は許されていない。実際には、Javaのenum型は現に、数値型というよりもむしろ、コンパイラによって生成された特殊なクラスである。enum値はそのクラスのあらかじめ生成されたグローバルなインスタンスとして振る舞う。enum型はインスタンスメソッドとコンストラクタ(引数が各々のenum値を分割指定できる)を持つ。全てのenum型は暗黙のうちにEnum抽象クラスを継承している。enum型を直接インスタンス化することは許可されない。 C#プログラミング言語の列挙型はCのenumの意味する多くの"小さな整数"を保持する。いくつかの数値演算はenumでは定義されないが、enum値は明示的に整数に変換し元に戻すことができる。またenum変数はenum宣言によって定義されなかった値を保存できる。例として、 が与えられたとき、式Diamonds + 1とHearts - Clubsは直接許可される(なぜならば、一連の値を通して進めるかまたは、多くのものが二つの値間を渡る方法を尋ねることはことは理にかなっている)が、Hearts * Spadesは理にかなっていないと考えられ、値が最初に整数に変換されるということだけが許可される。 MLの血統(e.g., SML、OCaml、Haskell)である関数型プログラミング言語ではnullary constructorしかない代数データ型は列挙型を実装するために使うことができる。例えば(SMLシグニチャの文法): もし、実際にそのような表現が実装に必要とされるならば、これらの言語では、小さな整数表現は完全にプログラマから隠蔽される。一方で、Haskellは型が派生でき、型とIntとのマッピングを得る実装ができるEnum 型クラスを持つ。 オブジェクトが、クラブ、ダイヤモンド、ハート、スペードへの#'eqlであるかどうかを一組のカードの型である状態。しかしメンバ型指定子はCLOS引数を特殊化するものとして妥当ではない。(eql atom)の替わりに、(member atom)が等価であるものが使われる(それは集合のメンバだけがeql型指定子で指定されるが、CLOS引数を特殊化するものとして使われるかも知れない。)。言い換えれば、 列挙型を覆うメソッドを定義するために、メソッドは各々の明確な型の要素を定義しなければならない。 データベースによっては列挙型を直接サポートする。MySQLでは、テーブルが生成されるときの文字列として指定された許容量を持つ列挙型ENUMが存在する。0としての空文字列とともに値は数値インデックスとして保存される。最初の文字列には1が保存され、第二の文字列には2が保存される、etc...。値は数値インデックスまたは文字列として検索し保存することができる。
[ ジャパネットたかたcm ソング の 列挙参考サイト] http://ja.wikipedia.org/wiki/%E5%88%97%E6%8C%99%E5%9E%8B
ジャパネットたかた 列挙型 - Wikipedia
|