今回は、Dartの基本的な書き方について紹介します。
今回Dartを実行するのは、 https://dartpad.dartlang.orgというWebサイトです。
Entry Point
DartははJavaと似て、まずはお決まりの言葉からはじまります。
実際にコードを書いてみると、次のようになります。
1 2 3 4 5 6 7 8 9 10 11 |
void main() { print("App started"); new App(); print("App finished"); } class App{ App(){ print("Constructing a class"); } } |
出力は、こうなります。
1 2 3 |
App started Constructing a class App finished |
種類
一般的にプログラミング言語は次の2つのグループに分けられます。
- 静的型付け言語
- 動的型付け言語
静的型付け言語
こちらに分類される言語は、開発者が事前に変数の型を決めておく必要があります。機械語のコンパイルするには型情報が必要なため、これらの言語はソフトウェア開発に向いています。
動的型付け言語
これらの言語は、事前に変数の型を指定する必要がありません。開発者がコードを再コンパイルする必要がなく、開発をとても速くしますが、その分エラーも起こりやすくなります。そのため、単純なものを作るのに向いています。
Dartはどちらに分類される?
それではDartは静的型付け言語と動的型付け言語のどちらに分類されるのでしょうか?
実はDartは静的型付け言語と動的型付け言語のどちらでも動くのです。型のチェックはコード作成時と実行時の2回チェックされ、型のタイプに矛盾がないことを保証しています。
静的型付け
静的型付けはDartで最も一般的に使われ、次の型からなります。
型 | 説明 |
int | 整数 |
double | 浮動小数 |
bool | 真偽(trueまたはfalse) |
String | 文字列 |
StringBuffer | 可変文字列 |
RegExp | 正規表現 |
List, Map, Set | コレクションクラス |
DataTime | 日時 |
Duration | 期間 |
Uri | Uniform Resource Identifier (URLのようなもの) |
Error | エラー情報 |
動的型付け
「var」か「dynamic」を使うことで、タイプを指定せずに変数を宣言することができます。
- 「var」は、タイプを指定せずに変数を宣言し、動的な変数を作ります。
- 「dynamic」は、「dynamic」型の変数を作成します。
2つの型の違いは?
この2つはほとんど同じですが、ほんの少し違いがあります。
1 2 3 4 5 6 7 8 9 10 11 12 |
void main() { print(multiplyMethod1(2,4)); print(multiplyMethod2(2,4)); } dynamic multiplyMethod1(int a, int b){ return a * b; } var multiplyMethod2(int a, int b){ return a * b; } |
このようなコードを実行すると…
1 2 3 4 5 6 |
Error compiling to JavaScript: main.dart:13:1: Error: The return type can't be 'var'. var multiplyMethod2(int a, int b){ ^^^ Error: Compilation failed. |
このように、varに対してのみエラーが出ます。これは、「var」型を返さなければいけないが、そんな型はないために起こります。