2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dartの基本文法入門:変数宣言、条件分岐、繰り返し処理、クラス、例外処理、非同期処理について

Last updated at Posted at 2023-04-17

※ この記事は、Dartの基本文法について解説しています。全体を読むのにおおよそ5~10分程度かかると思われます。

DartはGoogleが開発したオブジェクト指向のプログラミング言語で、Flutterなどのフレームワークの開発に用いられています。以下では、Dartの基本的な文法について解説します。

変数の宣言

Dartでは、変数を宣言するには varfinalconst などのキーワードを使用します。

var name = "John"; final age = 30; const double PI = 3.14;

var は、宣言時に初期値を代入することで、自動的に変数の型が決定されます。 final は、変数の値を一度だけ代入でき、その後は変更できないことを示します。 constfinal と同様ですが、コンパイル時に値が決定される必要があります。

データ型

Dartには、以下のようなデータ型があります。

  • int:整数を表す
  • double:浮動小数点数を表す
  • String:文字列を表す
  • bool:真偽値を表す
  • List:リストを表す
  • Map:キーと値のペアを表す
int num1 = 10;
double num2 = 3.14;
String str = "Hello, World!";
bool flag = true;
List<String> list = ["apple", "banana", "orange"];
Map<String, int> map = {"apple": 100, "banana": 200, "orange": 300};

条件分岐

Dartでは、 ifelseelse if などを使用して、条件分岐を実装することができます。

if (score >= 90) {
  print("Great!");
} else if (score >= 80) {
  print("Good!");
} else if (score >= 70) {
  print("Average.");
} else {
  print("Needs improvement...");
}

繰り返し処理

Dartでは、 forwhiledo-while などを使用して、繰り返し処理を実装することができます。

// for
for (var i = 0; i < 10; i++) {
  print(i);
}

// while
var i = 0;
while (i < 10) {
  print(i);
  i++;
}

// do-while
var i = 0;
do {
  print(i);
  i++;
} while (i < 10);

関数

Dartでは、関数を宣言することができます。

int add(int x, int y) {
  return x + y;
}

var result = add(1, 2);
print(result);

クラスとオブジェクト

Dartはオブジェクト指向プログラミング言語であり、クラスとオブジェクトをサポートします。

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void sayHello() {
    print("Hello, my name is $name, and I'm $age years old.");
  }
}

var person = Person("John", 30);
person.sayHello();

上記のコードは、 Person クラスを定義して、 nameage のプロパティを持ち、 sayHello メソッドで自己紹介するように設定されています。その後、 Person クラスのインスタンスを作成し、 sayHello メソッドを呼び出しています。

継承

Dartでは、クラスを継承することができます。継承することで、既存のクラスを拡張して新しいクラスを作成することができます。

class Student extends Person {
  String major;

  Student(String name, int age, this.major) : super(name, age);

  void sayMajor() {
    print("My major is $major.");
  }
}

var student = Student("Mike", 20, "Computer Science");
student.sayHello();
student.sayMajor();

上記のコードは、 Student クラスを定義して、 major プロパティを追加し、 Person クラスを継承しています。そして、 sayHello メソッドをオーバーライドし、 sayMajor メソッドを追加しています。その後、 Student クラスのインスタンスを作成し、 sayHello メソッドと sayMajor メソッドを呼び出しています。

getterとsetter

Dartでは、クラス内のプロパティにアクセスするための gettersetter を定義することができます。

class Person {
  String _name;
  int _age;

  Person(this._name, this._age);

  String get name => _name;

  set name(String name) {
    _name = name;
  }

  int get age => _age;

  set age(int age) {
    _age = age;
  }

  void sayHello() {
    print("Hello, my name is $name, and I'm $age years old.");
  }
}

var person = Person("John", 30);
person.sayHello();

person.name = "Mike";
person.age = 25;
person.sayHello();

上記のコードは、 Person クラスで nameage のプロパティを定義して、それぞれの gettersetter を定義しています。そして、 sayHello メソッドで nameage の値を使用しています。その後、 nameage の値を変更し、再び sayHello メソッドを呼び出しています。

以上が、Dartの基本的な文法についての解説となります。

例外処理

Dartでは、 trycatchfinally などを使用して、例外処理を実装することができます。

try {
  // 例外が発生する可能性があるコード
  var result = 10 ~/ 0; // 例外が発生する
} on UnsupportedError {
  // 発生した例外に対する処理
  print("You can't divide by zero.");
} finally {
  // 必ず実行される処理
  print("Done.");
}

上記のコードは、 try ブロック内で例外が発生する可能性があるコードを実行し、 catch ブロックで発生した例外に対する処理を記述しています。また、 finally ブロックでは、例外が発生しても必ず実行される処理を記述しています。

ラムダ式

Dartでは、ラムダ式を使用して、匿名関数を定義することができます。

var numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) => print(number));

上記のコードは、 forEach メソッドにラムダ式を渡して、リスト内のすべての要素を出力しています。

非同期処理

Dartでは、 asyncawaitFuture などを使用して、非同期処理を実装することができます。

Future<void> fetchData() async {
  print("Fetching data...");
  await Future.delayed(Duration(seconds: 1));
  print("Data fetched.");
}

void main() {
  fetchData();
  print("Program finished.");
}

上記のコードは、 fetchData メソッド内で非同期処理を実装しています。 await キーワードを使用して、非同期処理が完了するまで待機し、 Future オブジェクトを返します。その後、 main メソッドで fetchData メソッドを呼び出しています。

まとめ

以上が、Dartの基本的な文法についての解説となります。Dartは、オブジェクト指向プログラミング言語であり、FlutterやAngularDartなどのフレームワークの開発に使用されます。Dartの文法を理解することで、より効率的かつ堅牢なコードを記述することができるようになります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?