Flutter-Dart言語ベース
5677 ワード
他のプログラミング言語の経験、特にJavaやJavaScriptがあれば、Dartを簡単に手に入れることができ、基本的には1回の紹介で身につけることができます.記事の最後に次のdemoインスタンスgithubリンクがあります.
Dart概要
前編ではDart言語の由来やいくつかの言語特性などの利点を述べたが,ここでは重複しないので,前の記事を見て紹介することができる.
JavaScriptのように、Dartはオブジェクト向け言語ですが、カテゴリベースのプログラミングを採用しています.単一の継承のみが許可され、文法スタイルはC言語に近い.
Dartのメソッドもオブジェクトであり、メソッドが変数に値を付与したり、他のメソッドのパラメータとして使用したり、Dartクラスのインスタンスをメソッドとして呼び出すことができることを意味するタイプFunctionを有する.
Dart言語で変数を使用して参照できるものはすべてオブジェクトであり、各オブジェクトはクラスのインスタンスです.数値、メソッド、nullまでオブジェクトであり、すべてのオブジェクトがObjectクラスに継承されます.
Dartは強いタイプの言語で、どの変数にも確定タイプがあります.
変数宣言
1、Object
Objectは、FunctionとNullを含むDartのすべてのオブジェクトのベースクラスであるため、任意のタイプのデータはObject宣言のオブジェクトに付与され、宣言された変数は後で付与タイプを変更できます.
2、var
タイプを指定せずに変数を宣言する方法ですが、変数が割り当てられている限り、タイプが決定され、そのタイプは変更できません.
3、final and const
後で変数を変更するつもりがない場合はfinalまたはconstを使用します.1つのfinal変数には1回しか値を付与できません.1つのconst変数はコンパイル時定数です.(Const変数はfinal変数でもあります.)トップクラスのfinal変数またはクラス内のfinal変数は、最初に使用したときに初期化されます.
4、内蔵タイプ
ここはコードを直接見てください.
オペレータ
ほとんどのオペレータの意味は同じですが、ここではdart特有の
1、??
2、?
条件メンバーのアクセスは.と似ていますが、左の操作オブジェクトはnull、例えばfoo?bar fooがnullの場合nullを返し、そうでない場合barメンバーを返します
非同期
Dartには非同期プログラミングをサポートする言語特性があります.最も一般的な特性は、
Dartライブラリには、FutureまたはStreamオブジェクトを返す方法がたくさんあります.これらの方法は非同期です.これらの関数は、基本的な操作が設定された後に返され、操作の実行が完了するのを待つ必要はありません.たとえば、ファイルを読み込むと、ファイルを開いた後に戻ります.
Futureオブジェクトのデータを使用するには、次の2つの方法があります. を使用する. Future API を使用
同様に、Streamからデータを取得するには、次の2つの方法があります. を使用 Stream API を使用
awaitを使用するには、asyncキーを使用する必要があります.
Future.then:
Future.wait:
複数の非同期タスクの処理
まとめ
上記の基本的な紹介とコードの解釈を通じて、Dartの基本的な文法とタイプシステムに対して初歩的な理解があって、書く規則も知っています.冒頭で言ったように、他のプログラミング言語の基礎があれば、Dart言語を上手にするのは簡単だと思います.
if-else、forループ、while、do-while、break、continue、switch-caseなどのプロセス制御文法は他のプログラミング言語と大きく異なり、ここでは一つ一つ紹介しません.
より多くのDart言語の特性は、後続の使用過程でゆっくり学ぶ必要があります.公式文書を参照できますhttps://api.dartlang.org/stable/2.2.0/index.html
コードインスタンス
github flutter-freeが転送されました
リファレンスラーニング
http://dart.goodev.org/guides/get-started とても良い対比はウェブサイトを学びます
Dart概要
前編ではDart言語の由来やいくつかの言語特性などの利点を述べたが,ここでは重複しないので,前の記事を見て紹介することができる.
JavaScriptのように、Dartはオブジェクト向け言語ですが、カテゴリベースのプログラミングを採用しています.単一の継承のみが許可され、文法スタイルはC言語に近い.
Dartのメソッドもオブジェクトであり、メソッドが変数に値を付与したり、他のメソッドのパラメータとして使用したり、Dartクラスのインスタンスをメソッドとして呼び出すことができることを意味するタイプFunctionを有する.
Dart言語で変数を使用して参照できるものはすべてオブジェクトであり、各オブジェクトはクラスのインスタンスです.数値、メソッド、nullまでオブジェクトであり、すべてのオブジェクトがObjectクラスに継承されます.
Dartは強いタイプの言語で、どの変数にも確定タイプがあります.
変数宣言
1、Object
Objectは、FunctionとNullを含むDartのすべてのオブジェクトのベースクラスであるため、任意のタイプのデータはObject宣言のオブジェクトに付与され、宣言された変数は後で付与タイプを変更できます.
/// Object
Object myObject;
myObject = 'dart is good';// string
myObject = 998;// num
print(myObject);
/// dynamic
dynamic myDynamic;
myDynamic = "dart is good";
myDynamic = 999;// num
print(myDynamic);
///dynamic Object :dynamic ,
/// Object Object ,
2、var
タイプを指定せずに変数を宣言する方法ですが、変数が割り当てられている限り、タイプが決定され、そのタイプは変更できません.
//
var number = 10;
// number = 'start';// , number = 10 ,number
3、final and const
後で変数を変更するつもりがない場合はfinalまたはconstを使用します.1つのfinal変数には1回しか値を付与できません.1つのconst変数はコンパイル時定数です.(Const変数はfinal変数でもあります.)トップクラスのfinal変数またはクラス内のfinal変数は、最初に使用したときに初期化されます.
// , final
final name2 = 'Bob';
// name2 = "bbb";//
var foo = const [];
final bar = const [];
const baz = const [];
foo = [];// value
// bar = [];// final
// baz = [];// const
4、内蔵タイプ
ここはコードを直接見てください.
//int double num
int x = 1;
double y = 1.0;
var x1 = 1;
var y2 = 1.0;
// String -> int
var one = int.parse('1');
print("String -> int:$one");
// int -> String
String oneAsString = 1.toString();
print("int -> String:$oneAsString");
///
var s1 = ' string';
var s2 = " string";
print(s1);
print(s2);
///
var s3 = '''
''';
print(s3);
var count;
print('Hello, World!');
print(count);
printNumber(number);
/// list
var list = [1, 2, 3];
list.forEach(printElement);
/// list
var constantList = const [1, 2, 3];
/// map
var gifts = {
// Keys Values
'first' : 'partridge',
'second': 'turtledoves',
'fifth' : 'golden rings'
};
/// map
var gifts2 = new Map();
gifts2['first'] = 'partridge';
gifts2['second'] = 'turtledoves';
gifts2['fifth'] = 'golden rings';
print(gifts2);
/// bool
var isGood = true;
print(isGood is bool);
// 。
printNumber(num aNumber) {
print('The number is $aNumber.'); // 。
}
printElement(element) {
print(element);
}
///List Set Iterable for-in
var collection = [0, 1, 2];
for (var x in collection) {
print(x);
}
/// , paramName: value
sayHello(name: "dart",talk: "hello");
sayHello(name: "dart");
オペレータ
ほとんどのオペレータの意味は同じですが、ここではdart特有の
1、??
b ??= value; // b null, b;
// null, b
2、?
条件メンバーのアクセスは.と似ていますが、左の操作オブジェクトはnull、例えばfoo?bar fooがnullの場合nullを返し、そうでない場合barメンバーを返します
非同期
Dartには非同期プログラミングをサポートする言語特性があります.最も一般的な特性は、
async
メソッドおよびawait
式である.Dartライブラリには、FutureまたはStreamオブジェクトを返す方法がたくさんあります.これらの方法は非同期です.これらの関数は、基本的な操作が設定された後に返され、操作の実行が完了するのを待つ必要はありません.たとえば、ファイルを読み込むと、ファイルを開いた後に戻ります.
Futureオブジェクトのデータを使用するには、次の2つの方法があります.
async
およびawait
同様に、Streamからデータを取得するには、次の2つの方法があります.
async
と非同期forサイクル(await for
)awaitを使用するには、asyncキーを使用する必要があります.
lookUpVersion(){
}
checkVersion() async {
var version = await lookUpVersion();
}
/// getName
String getName(String name){
return 'dart$name';
}
void sayDart() async {
try{
String name1 = await getName("1");
String name2 = await getName(name1);
print(name1+name2);
//
} catch(e){
//
print(e);
}
}
Future.then:
/// Future.delayed
Future.delayed(new Duration(seconds: 5),(){
return "Hello, World!";
}).then((data){
print(data);
});
Future.wait:
複数の非同期タスクの処理
/// Future.wait
Future.wait([
Future.delayed(new Duration(seconds: 1), () {
return "Hello, World 1!";
}),
Future.delayed(new Duration(seconds: 2), () {
return "Hello, World 2!";
})
]).then((results){
print(results);
}).catchError((e){
print(e);
});
まとめ
上記の基本的な紹介とコードの解釈を通じて、Dartの基本的な文法とタイプシステムに対して初歩的な理解があって、書く規則も知っています.冒頭で言ったように、他のプログラミング言語の基礎があれば、Dart言語を上手にするのは簡単だと思います.
if-else、forループ、while、do-while、break、continue、switch-caseなどのプロセス制御文法は他のプログラミング言語と大きく異なり、ここでは一つ一つ紹介しません.
より多くのDart言語の特性は、後続の使用過程でゆっくり学ぶ必要があります.公式文書を参照できますhttps://api.dartlang.org/stable/2.2.0/index.html
コードインスタンス
github flutter-freeが転送されました
リファレンスラーニング
http://dart.goodev.org/guides/get-started とても良い対比はウェブサイトを学びます