Dart言語を勉強してみる
Dartをインストール
$ dart --versionDart VM version: 2.4.1 (Unknown timestamp) on "linux_x64"コンソールで実行
dart hoge.dart ってやると実行された。
void main() { var name = 'taro'; print('Hello ' + name);}$ dart hoge.dartHello taro文法の概要
ぱっと見はjavascriptに似てる。
void main() { var name = 'taro'; print('Hello ' + name);
var foods = ['apple', 'orange', 'ramen']; for (String food in foods) { print(food.toUpperCase()); } int num = addTen(10); print(num);
List<int> numList = [1, 2, 3]; numList.forEach((num) => print(addTen(num)));
Food food = Food('apple', 400); food.selfIntroduction();}
int addTen(int n) { return n + 10;}
class Food { String name; int price; String description;
Food(this.name, this.price) {
}
void selfIntroduction() { print('this food is $name'); print('price is $price yen'); if (description != null) print(description); }}$ dart hoge.dartHello taroAPPLEORANGERAMEN20111213this food is appleprice is 400 yen型がしっかりしてるjavascriptみたいな感じで、async / awaitも使えるらしい。classとか型とかもうちょっと調べよう。
エディタは何を使ったらいいでしょうか?
webstormがよろしいかと思います。それか、vimでしょうか?私はwebstormにします。といってもvimでも色つけたりはしたいです。
vimプラグイン
公式プラグインだそうです。
https://github.com/dart-lang/dart-vim-plugin — github.com
vimプラグインの入れ方は毎回綺麗に忘れますのでメモります。私はvim-plugというのを使っているようです。
.vimrc
call plug#begin('~/.vim/plugged')
...
Plug 'dart-lang/dart-vim-plugin'
...
call plug#end()上記のような感じで Plug 'dart-lang/dart-vim-plugin' を追加します。 そして、vimでファイルを開いて、:PlugInstall を実行します。 するとこんな感じでコードに色がつきまっす。

お試しコード
void main() { var name = 'taro'; print('Hello ' + name);
var foods = ['apple', 'orange', 'ramen']; for (String food in foods) { print(food.toUpperCase()); } int num = addTen(10); print(num);
List<int> numList = [1, 2, 3]; numList.forEach((num) => print(addTen(num)));
Food food = Food('apple', 400); food.selfIntroduction();
print(food.name); print(food.price);
Food2 food2 = Food2('apple2', 800); print(food2.name); print(food2.price); food2.selfIntroduction();
food.hoge(); food2.hoge();
Ojisan mr_o = Ojisan(); mr_o.pawahara(); mr_o.kareisyu(); mr_o.kosyu();}
int addTen(int n) { return n + 10;}
class Food with HogeMix { String name; int price; String description;
Food(this.name, this.price) { this.price = addTen(this.price); }
void selfIntroduction() { print('this food is $name'); print('price is $price yen'); if (description != null) print(description); }}
class Food2 extends Food { Food2(name, price) : super(name, price);
@override void selfIntroduction() { print('こんにちは'); }}
class HogeMix { int num = 100;
void hoge() { print(num); }}
abstract class abstractOjisan { void kareisyu();
void pawahara() { print('パワハラ'); }}
class interfaceOjisan { void kosyu() { print('お口臭い'); }}
class Ojisan extends abstractOjisan implements interfaceOjisan { void kareisyu() { print('くさくさ'); }
void kosyu() { print('くちくっさwww'); }
void ikemen() { print('僕イケメン'); }}$ dart hoge.dartHello taroAPPLEORANGERAMEN20111213this food is appleprice is 410 yenapple410apple2810こんにちは100100パワハラくさくさくちくっさwww