- ベストアンサー
プログラミングのこの画像のデータ型は、変数の右辺に
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>>変数型? ということは、型は変数にしかないんですか? 関数には型はないんですか? 型はデータの性質に応じてメモリの領域の大きさや プログラムがその値をどう解釈するかという指標です。 なので、データを格納する変数に型が存在します。 関数の場合VBであればfunction procedureがこれに相当しますが、 関数そのものではなく、関数が返す「値」に型があります。 また、関数に「この値を使用して処理してね」と渡す 引数は多くの場合変数を渡しますが、言語によっては実データを 渡すことが出来るものは少なくないです。 しかし、その値を受け取る関数の側では変数なのか 実データが渡されるのか、予測は出来ないですが、 少なくとも「型」だけは予想通りのものが渡されないと 処理できません(そういうふうに作っていますから) これを仮引数といいますが、これにもすでに述べたように、 型が存在します。 つまり関数そのものに型はないですが、戻り値や引数・仮引数に 型が存在します。 コンピュータはバカなのでプログラマがこれを 決めておいてあげないと、簡単な計算すら出来ないのです。 (勿論プログラム言語側で型を予測・判断して、 そこそこ正しい型を自動的に選んでくれる場合もありますが、 これは、そういうふうにプログラミングをするプログラムが 作られているだけで、コンピュータが利口なわけではありません ・・脱線しすぎですが・・)
その他の回答 (4)
- dell_OK
- ベストアンサー率13% (770/5733)
代入式の右辺と言う意味でしたら、そうですね、 変数=さまざまなデータ型 となります。 バイト型の扱いは言語によって異なりそうです。 Variantと表記する型で私が知っている言語はVisualBasicですが、 バイト型に256以上の値を代入すると、 オーバーフローと呼ばれるエラーになります。
お礼
ありがとうございます
- Ultra-Hetare
- ベストアンサー率38% (204/526)
拝見したところそれらは「Visual Basic」の 変数型のように見受けられます。 ですので、通貨型や日付型・byte型・オブジェクト型は 他のプログラミング言語ではほとんど用意されていません。 (使えないということです) で、byte型ですが正直ほとんど使うことがないです。 格納できる値が0から255までしか無いので、 役立たせにくいです(256以上を代入するとオーバーフローします) まあAsciiコードがこの範囲に収まりますので、時々byte型の配列を 作成して文字列をAsciiコードとして保存しておくのに使うくらいしか 私には使いみちが分かりません。 普通に数値を格納するならLong型一辺倒で差し支えありません。 (Integerも範囲が狭いですし、処理速度もLongと大差ないので)
お礼
変数型? ということは、型は変数にしかないんですか? 関数には型はないんですか?
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>バイト型と整数型は表記のルールがちがうんですか? あ~そういうことね! https://www.php.net/manual/ja/language.types.float.php 代入しようとしている形式が LNUM [0-9]+(_[0-9]+)* DNUM ([0-9]*(_[0-9]+)*[\.]{LNUM}) | ({LNUM}[\.][0-9]*(_[0-9]+)*) EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM}) の正規表現にマッチすれば浮動小数とするようですね。 #PHP 7.4.0 以降 あと、文字列は、'シングルクオートもあります。 エスケープの有無が違うので、 エスケープがない場合は、シングルを使う用が、 微妙に、速いです。
お礼
ありがとうございます
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>バイト型というのは整数型と何が違うんでしょうか? >また、256以上はどうなるんでしょうか? 細かい見方をすれば、 tinyintみたいな、さらに小さい数字もありますが。 ひとまず、 Byte=つまり1バイトで表せる数字は 2^8-1=255までなので、 256は「0」です。257は「1」 これは、8ビット目(0オリジンで)が1がたっても、 0-7ビット目には影響しないために起こる現象です。 同じように、Word型(またはShort)は16ビット=65535と 1つの領域がどの数字まで表せるか?を つなげてメモリは使われているので、 適切な物を選べばそれでいいのです!。 なので、1,2,3を表すなら Byte配列でもInt配列でもいいわけです。 しかし、1,100,1000を表す場合、 Byteでは1000が入れられないので、それよりも大きいWord/Shortや Intなどを使っているという具合です。 ただし、Intは通常4バイトもあり、 逆に、Byteは1バイトなので、格納に4倍の情報量を 使用するので小さい値を入れる場合は「無駄」の方が増えます。 の、バランスです。 むしろ上の絵では、StringとByteの違いを 考える方が、良いかもですよ!。 (いつか、その問題にぶつかる日が来ますので、 覚えておくといいかもです)
お礼
ありがとうございます バイト型と整数型は表記のルールがちがうんですか? 文字列は""ダブルクォーテーションで囲む等
お礼
ありがとうございます