最初のステップ-Dart言語(B)をはじめフラッター
オペレータ1.Dart
2.異常
3.クラスとオブジェクト
オペレータ1.Dart
1.1取整
void main()
{
var a = 7 ;
var b = 2;
print(a~/b);//输出1
}
1.2カスケード操作
我々は、単一のオブジェクト上で一連の操作を行って、あなたはカスケードを使用することができます。ダーツでは、カスケードはできる..
カスケード接続すること。次の例では:
class Person {
String name;
String country;
void setCountry(String country){
this.country = country;
}
String toString() => 'Name:$name\nCountry:$country';
}
void main() {
Person p = new Person();
p ..name = 'Wang'
..setCountry('China');
print(p);
}
IF 1.3文を決定
DART判断と文Javaの構文は同じです。
if(a>b)
{
print(a);
}
else
{
print(b);
}
1.4forサイクル
ループと一貫性のためにJavaでダーツ。次の例
for(int i = 0; i<3; i++) {
print(i);
}
1.5 foreachループとで
void main() {
var collection = [0, 1, 2];
collection.forEach((x) => print(x));//forEach的参数为Function,这里的x就像是我们在java中的冒号左面的那个变量,但直接放在了匿名函数中作为了形参。
for(var x in collection) {
print(x);
}
}
1.6switch_case
switch_caseとJavaでDARTは、基本的には同じであるが、ここで説明します
1.7?。そして??
?。意味(クエスチョンマークドット演算子)シンボルが左側に表されている場合はnullで、コードシンボルは、実行権をブロックしますか
??左側の記号の意味の(ダブル呼び掛けオペレータ)代表値がnullの場合、デフォルト値を符号に割り当てられるように、右側の値となるシンボルの左。
次の例では:
var boolean = list[i]?.contains(1) ?? false;
。
。
。
2.優れた
Java言語は、例外ダート概念が存在しない場合にチェックされ、すべての例外は、Java言語を実行している場合、プログラマは例外を処理するためのプログラムは必須ではないことを意味し、例外として理解することができるとは異なりますが、もし例外は、割り込みプログラムの実行を発生します。
ダートエラーと例外の2種類に分け。
興味深いことにダートで我々は異常のいずれかのタイプ、あるいは言葉を投げることができるが、一般的に、我々はそれをしません。
ダーツでは、我々は次の例では、例外をキャプチャするために+ +キャッチ(例外オブジェクト)に異常の種類を使用します。
main() {
try {
test();
} on ArrayIndexOutOfBoundEXception catch(e){
print(e);
}on Error catch(e){
print(e);
}
}
test(){
throw ArrayIndexOutOfBoundEXception("下标越界");
}
私たちはこの例外を処理できない場合、我々は再び投げることができます。
main() {
try {
test();
} on ClassError catch(e){
print(e);
rethrow;
}
}
test(){
throw ClassError("类型异常");
}
Javaと同じことは、我々は最終的に、最終的な処理を行うことができるということです。
。
。
。
3.クラスとオブジェクト
のオブジェクトから継承するすべてのクラスでダーツを
同様の宣言ダーツクラスとJava。クラスへのクラスで標識しました。オブジェクトを作成するには、New付き。コンストラクタの書き換えがない場合、デフォルトの引数なしのコンストラクタがあります。
定義3.1カテゴリ
class Point {
num x;
num y;
num z;
}
void main() {
var point = new Point();
print(point.x);
}
3.2静的リソース
基本とJava類似の制限である静的キーワードを修正する静的リソースでダーツが、一つの違いは、静的リソースを介してダートのみクラス名でアクセスできることで、オブジェクトにアクセスすることができず、Javaオブジェクトまた、クラスの静的なリソースにアクセスすることができます。
コンストラクタ3.3命名
構文ダーツは、サポート関数のオーバーロードは、Javaのコンストラクタのオーバーロードのような同じ言語を使用することはできませんしません。このため、複数のコンストラクタを使用する必要が、この形式のコンストラクタの名前を使用します
void main(){
var a = new NumberTest(2,3);
var b = new NumberTest.cons1();
var c = new NumberTest.cons2(5);
a.display();
b.display();
c.display();
}
class NumberTest{
num a;
num b;
NumberTest(this.a, this.b){} //构造函数
NumberTest.cons1(){//命名构造函数1
this.a = 0;
this.b = 0;
}
NumberTest.cons2(this.a){//命名构造函数2
this.a = a;
this.b = 0;
}
void display(){
print("数据:${this.a},${this.b}");
}
3.4抽象クラス
ダートクラスおよびインタフェースでは、統一され、クラスがインターフェースである
あなたは、機能の一部を書き換えたい場合は、あなたがクラスを継承することができ
ますが、特定の機能を実行したい場合は、あなたがクラスを達成することができます
抽象キーワードは、抽象クラスを定義する抽象クラスを使用し、インスタンス化できない
抽象メソッドは、セミコロンに直接キーワードを必要としない、にエンド
次のサンプルコード:
abstract class Shape { // 定义了一个 Shape 类/接口
num perimeter(); // 这是一个抽象方法,不需要abstract关键字,是隐式接口的一部分。
}
class Rectangle implements Shape { // Rectangle 实现了 Shape 接口
final num height, width;
Rectangle(num this.height, num this.width); // 紧凑的构造函数语法
num perimeter() => 2*height + 2*width; // 实现了 Shape 接口要求的 perimeter 方法
}
class Square extends Rectangle { // Square 继承 Rectangle
Square(num size) : super(size, size); // 调用超类的构造函数
}
ここにこの記事では、パートIIを参照してください