おすすめ!プログラミング学習サービス5選!詳しくはこちら

2023:Flutter入門:開発で知っておきたいDart言語の基礎文法まとめ

こんにちは! 文系SEの焼き芋です!

Flutter開発で知っておきたい、Dartの基本文法ってなに?

ということで、悩んでいませんか?

そこで、今回はDartの基本文法について、解説します。

焼き芋

この記事はこんな人におすすめです!
これからDartを学びたい方
・Dartの基本文法を忘れた方

この記事で分かること!
  • Dartの基本文法
Dart公式ページからDartを学べます(英語)

Dart公式ページで用語の説明もあります。

DartPadサイトでブラウザ上でDartのコーディング練習もできます。

目次

変数、データ型の種類、算術演算子

void main() {
  // 変数 = データを格納する箱
  // データ型 変数名 =  値
  String a = "焼き芋";
  int b = 1;
  bool c =  true;

  print(a);
  print(b);
  print(c);
  
}

コンソール結果

焼き芋
1
true

クラス

Private _(アンダースコアについて)

ポイント!

  • Privateとは・・・他のクラスからアクセスできないようにする変数
  • 変数の前にアンダースコア_をつけることで、他クラスからアクセスできなくなる
  • 以下では、main.dartファイルからtest.dartファイルのint ageにはアクセスできない
class Person {
  String name; 
  int _age;
}
class _MyHomePageState extends State<MyHomePage> {
  
  Person personInstance = Person();

  @override
  Widget build(BuildContext context) {

    print(personInstance.name);
    print(personInstance.age);
  }
}

修飾子:static

ポイント!

  • Staticとは・・・インスタンスなしでアクセスできる変数
  • 変数の前にアンダースコア_をつけることで、他クラスからアクセスできなくなる
  • 以下では、main.dartファイルからtest.dartファイルのint ageにはアクセスできない
class Person {
  String name; 
  int _age;
}
class _MyHomePageState extends State<MyHomePage> {
  
  Person personInstance = Person();

  @override
  Widget build(BuildContext context) {

    print(personInstance.name);
    print(personInstance.age);
  }
}

メソッド/ファンクション

void main() {
 
  // Function = 処理(メソッド)まとめたもの
  // メソッド実行
  hello();
  numCal(3);
  String getName3 = getName();
  print(getName3);
  getName2();
    
}

// 引数なし
void hello(){
  print("こんにちは");      
}


// 引数あり
void numCal(int a){
  int b = 2;
  print(2 * b);      
}

// Returnあり
String getName(){
  String name = '焼き芋';
  return name;
}

// Returnなし
void getName2(){
  String name = '焼き芋セカンド';
  print(name);
}

コンソール結果


こんにちは
4
焼き芋
焼き芋セカンド

if文

比較演算子

void main() {
 
  // 比較演算子
  int a = 10;

  print(a == 10); //同じ
  print(a != 10); //同じでない
  print(a < 10);  //大なり
  print(a <= 10); //以下
  print(a > 10);  //小なり
  print(a >= 10); //以上
  
}

コンソール結果

true
false
false
true
false
true

if文の基本

void main() {
 
  // 基本のif文
  int a = 10;
  int b = 5;
  
  if(a== 10){
    print('正解');
  }
  
  
  if(b == 10){
    print('10です');
  }else{
    print('10ではないです');
  }

  
  if(b == 10){
    print('10です');
  }else if(b == 5){
    print('5です');
  } else{
    print("10でも5でもない");
  }
  
}

コンソール

正解
10ではないです
5です

論理演算子・三項演算子

void main() {
 
  // 論理演算子
  int a = 18;
  String b = 'men';
  
  // かつ
  if(a >= 16 && a < 19){
    print("高校生です");
  }else{
    print("高校生ではありません");
  }
  
  // もしくは
  if(b == 'men' || a >= 18){
    print("入部可能です");
  }else{
    print("入部できません");
  }
  
  // 三項演算子
  int c = 10;
  
  c == 10 ? print('cは10です') : print("cは10ではないです");
  
}

コンソール

高校生です
入部可能です
cは10です

switch文

void main() {
 
  // switch文
  
  String a = '青';
  
  switch(a) {
    case '青':
      print("青です");
      break;
    case '赤':
      print("赤です");
      break;
    default:
      print("青でも赤でもありません");
      break;
  }
  
}

コンソール

青です

enum

void main() {
 
  // enumu
  Color color = Color.blue;
  
  switch(color) {
    case Color.blue:
      print("青です");
      break;
    case Color.red:
      print("赤です");
      break;
    default:
      print("青でも赤でもありません");
      break;
  }
}

enum Color {
  
  blue,
  red,
  yellow
}

青です

繰り返し処理

for文

void main() {
 
  // for文  
  for(int i = 0; i < 5; i++){
    print(i);
  }

  // for in文
  List<String> animalList = ["Cat","Bird","Dog"];

  for(String name in animalList){
    print(name);
  }
  
  for(int i = 0; i < animalList.length; i++){
    print(animalList[i]);
  }
  
}

コンソール

0
1
2
3
4
Cat
Bird
Dog
Cat
Bird
Dog

while文

void main() {
 
  // while文  

  int num = 5;
  
  while(num > 0){
    
    if(num % 3 == 0){
      num--;
      continue;
    }
    
    print(num);
    num--;
    
    if(num < 3){
      break;
    }
  }
  
}

コンソール

5
4
2

Future

void main() {
 
  //Future = 時間掛かる処理
  hello();
  hello2();
    
}

// 通常
void hello(){
  print("スタート");   
  print("ゴール");
}

// future
Future <void> hello2() async{
  
  print("スタート");  
  //5秒待つ  awaitつけると同期処理になる
  await Future.delayed(Duration(seconds: 3));
  print("ゴール");
}

コンソール

スタート
ゴール
スタート
ゴール

const・final

void main() {
 
  // const コンパイル時定数
  // コンパイル時に値が決まっている必要あり
  const String name = '焼き芋';
    
  // final 変数入れて定数として扱える  
  String nameFinal = '焼き芋ファイナル';
  final String name2 = nameFinal;
  
  print(name);
  print(name2);
  
}

コンソール

焼き芋
焼き芋ファイナル

Widget(ウィジェット)

import 'package:flutter/material.dart';
  
void main() {
 
  //ウィジェット = FlutterのUIを構築しているパーツ
  //様々なWidgetを組み合わせUI作る
  
  Widget txt = Text('焼き芋');
  Widget icon = Icon(Icons.help_center);
   
}

Null Safety

void main() {
 
 // Null Safety
 int a = 0;
 int? b = null;
  
 String c = 'yakiimo';
 String? d = null;
  
 
  void add({int? e}){
    print(e ?? 0 + 1);
  }
  add();
}

コンソール

1

まとめ

今回の記事ではDartの基本文法について解説しました。

Dart公式ページからDartを学べます(英語)

Dart公式ページで用語の説明もあります。

DartPadサイトでブラウザ上でDartのコーディング練習もできます。


以上、最後まで読んで頂きありがとうございました!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次