![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Flashに限らない話かもしれませんが、Flashでは変数にデータ型を指定する「必然性」がありません。例えばJAVAでは変数に必ずデータ型を指定する必要がありますが、Flashは指定しなくても可です。他に例を挙げれば、Perlも同じくデータ型を指定する必然性はありませんが、文字列と数値の区別はデフォルトでされています。等価式を書く際、数値の等価は==、文字列の等価はeqと書くように。しかしFlashは数字も文字列も==が使えます。この点、Flashは区別が無くて使いやすいというべきか、いいかげんというべきなのか・・・。
本題ですが、先述したとおりFlashではデータ型を指定する必然性がありません。にも関わらず「var i:Number;」のようにデータ型を指定したスクリプトを書いている人を特にプロの方でよく見かけます。あとは返り値の無いfunctionで「function aaaa():Void {」など。これらは何のためにわざわざ指定されているのでしょうか?誤った使い方をされないためですか?
同じ理由でvarの必然性にも疑問を感じます。あってもなくても動作に影響は全くなし。ただ、これは書いてくとソースが見やすくなるので、視覚的利便性の目的で使うことにしています。
No.1ベストアンサー
- 回答日時:
質問の前半部分の変数宣言の必然性などは私にもわかりませんが、
var i:Number;
という記述は厳密な型指定といわれるもので、
1.誤った型が入ったときコンパイルエラーとなる
2.コードヒントが表示される
等の利点があります。
1.誤った型が入ったときコンパイルエラーとなる
var i:Number;
var s:String;
と宣言して置いて
i = "12"
と記述するとコンパイルエラーとなります。
これは数値型に文字型を代入したためです。
同様に
s = 1
もエラーとなります。
これらがコンパイルエラーとなることで、変数に謝った型が入るのを防ぐことが出来ます。
また
trace(s.hoge)
と存在しないプロパティを記述してもコンパイルエラーとなります
この厳密な型指定はvarで宣言しなければ使用できません
2.コードヒントが表示される
var s:String
と記述した後、
sに続いて.(ピリオド )を入力した時点で
使用できるメソッドとプロパティの一覧が表示されます。これ結構便利ですよね。
またコードヒントは接尾辞をつけたり(String型の場合はhoge_strと_strをつける)、
//String moji;
とコメントを入れることでも使用できます
(//MovieClip this;でthisのコードヒントが出せるので便利)
関数も同様に
function s():String {
return 2;
}
でコンパイルエラー(戻り値が文字型ではない)
function v():Void{
return 1
}
でコンパイルエラー(戻り値を返しているから)となります。
つまり質問者さんが言うように誤った使い方をされないためだと私は思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サムネイルの写真にリンクをつ...
-
エラー(型が一致しません。)...
-
エラー438でオブジェクトの...
-
VB.NET の配列の要素数
-
VBでボタンを押すと画像をラン...
-
VB6でユーザー定義型がNothing...
-
LRESULTとHRESULT
-
ifdefとenum
-
IDの自動採番について
-
時間差を取得結果を求めるには
-
ATLについて
-
三辺の長さから角度を求めたい...
-
int型やfloat型などの範囲を返...
-
#define 文
-
調和関数について
-
正規表現でタグの中身を抜き取...
-
【至急】大学のVBA授業の課題に...
-
Javaのコンストラクタについて ...
-
ランダムに数字を並び変える方法は
-
TextChangeイベントが発生しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XML内のタグの内容を、変数に出...
-
サムネイルの写真にリンクをつ...
-
objectから数値を取り出すには?
-
文字がランダムに入れ替わるス...
-
一定時間ごとにカウント
-
YouTubeの自作検索フォームで文...
-
クイズ作成に関して xml形式の...
-
csv読込
-
FLASHでタイピングゲームをつく...
-
マウスの基準点について
-
FLEX3:RegExpValidatorの正規表現
-
Objectの1番目の値がundefinedに
-
エラー(型が一致しません。)...
-
VB6でユーザー定義型がNothing...
-
c++ cmathとmath.h
-
TextChangeイベントが発生しない
-
python: 直角三角形の種類を求...
-
VB.NET の配列の要素数
-
変な質問ですみません、n番目の...
-
配列の要素番号を取得するには?
おすすめ情報