northpaddyのブログ

日々学んだプログラミングについてアウトプットしていきます

Dart言語に触れてみよう①

概要

Dart公式ドキュメントを参考に、
Dart言語についてのアウトプットを行なっていきたいと思います。
またDart言語を出力させるためにDartPadという機能が公式の方にありますのでそちらでコードをコピペして実行してみてください。

Hello World

お馴染みですね。
Dart言語にて”Hello World!”と出力してみます

void main() { //最初に実行するコードはmain関数の中に記述します
 print("Hello, World!"); //Hello World!と出力されます
}

全てのアプリにはmain()機能があります。
このmain関数が一番最初に実行されます。
記述する上でのお決まりみたいなものです😀

コンソールにテキストを出力するにはprint() 
文字列を表したい場合は” ”か’ ’で囲み、出力したい文字を記述していきます。(整数を出力したい場合は””や’’は必要ありません。)
Dartは行末に;(セミコロン)が必要になります

ちなみに
 // の後の記述はコメントアウトされておりコントール等には表示されません。メモ用に使うといいでしょう。
複数行にわたるコメントには/*   */の中にコメントを記述するとコメントアウトすることが出来ます

データ型

 型には様々なものがあり
・String(文字列)
・int(整数)
・double(小数)
・bool(真偽)
・List(配列)
・Set(セット)
・Map(Key/Valueペア)
という型があります。(他にもあるのかな?)

Dartでは型を指定する記述方法があります

void main() { 
 String name = 'abe'; //nameはString型と指定
 int age = 20; //ageはint型と指定
 double height = 170.5; //heightはdouble型と指定
 bool isMale = true; //isMaleはbool型と指定
 
 print('$name, $age, $height, $isMale');
 
}
//以下出力結果
=>abe, 20, 170.5, true

変数(var, dynamic, final, const)

次は変数を使ってみましょう
その中でもvar, dynamic, final, constという変数を紹介します

var

以下のコードはaという変数に’Bob’という文字列が入っています。
print(a)で出力してみるとBobと表示されました

void main() { 
 var a = 'Bob'; 
 print (a);
}

//以下出力結果
=>Bob

今回新しくvarという変数が出てきました
前回はStringの型を指定していましたが今回はしていません
varによってこのaという変数はString型(文字列)だということが推測されているのです
varは型を自動で推論してくれていると言うことです

では今度は新たにaにint型(数列)を上書きして入れてみましょう

void main() { 
 var a = 'Bob'; //varによってString型と推測されている
 a = 326; //追記
 print (a);
}

=>
//出力結果はエラーになっているはずです

エラーになりました!
varの特性として一度入れたの変更は出来ません。
上記の場合’Bob’というString型が入っていたのに
326というint型が上書きされようとしていました
一度Stringに決められた型なのでintには変更が出来なくてエラーが起きたのです!

dynamic

次はdynamicと言う変数です

void main() { 
dynamic a = 'Bob'; //dynamicに変更しました
 print (a);
}

//以下出力結果
=>Bob

出力結果はBobになりましたね!
ではvarのとき同じようにaにint型(数列)を上書きしてみましょう!

void main() { 
 dynamic a = 'Bob'; 
 a = 326; //追記
 print (a);
}

//以下出力結果
=>326

326と上書きされました!
dynamicはvarと違い何型でもいいと言うダイナミックな変数です!笑

final

次はfinalと言う変数です

void main() { 
final a = 'Bob'; //finalに変更しました
 print (a);
}

//以下出力結果
=>Bob

ここまでは一緒です
ではfinalとはなんなのでしょうか?
それは一度決めた値の変更を不可にすると言う変数なのです!
試しにBobを変えてみましょう!

void main() { 
 final a = 'Bob'; 
 a = 'Taro' 
 print (a);
}

=>
//エラーになりました!

もちろんint型に変えてもエラーが出ます😀

const

最後にconstです
constはfinalと同じく値の変更が不可になります
では同じような機能の変数なのになぜ二つあるの?

私もよく分からないのでググってみると
finalは処理が実行されたときに変更不可に
constはコンパイル時に変更不可になる

?(なるほど分からん)

コンパイル時に値を特定/指定できるならば、const
コンパイル時に値を決めれないが、実行時に設定するなら、final
と覚えておけば今のところいいのではないのでしょうか?😅


まとめ

初めてアウトプットの為ブログ記事を書いてみました
初学者の為至らぬ箇所もあるかと思いますが
何かあればご指導の程よろしくお願いします!