BASICS OF
DART
LANGUAGE
اﻟﻘﻮاﺋﻢ LISTS
ﻟﻐﺔ دارت ﺗﻌطﯾك Listsواﻟﺗﻲ ھﻲ ﻋﺑﺎرة ﻋن
ﻣﺻﻔوﻓﺎت ﻣﻊ ﺑﻌض اﻟﺧﺻﺎﺋص اﻹﺿﺎﻓﯾﺔ.
;]'var arr = ['a','b','c','d','e
;)print(arr
Listأرﺑﻊ ﻋﻧﺎﺻر ﻣن ۱اﻟﻰ var arr =[1,2,3,4]; ٤
;)]print(arr[1 اطﺑﻊ اﻟﻌﻧﺻر اﻟﺛﺎﻧﻲ .
ﻏﯾر ﻗﯾﻣﺔ اﻟﻌﻧﺻر اﻟراﺑﻊ اﻟﻰ arr[3]=5; ٥
اطﺑﻊ طول اﻟﻘﺎﺋﻣﺔprint([Link]);.
FUNCTION
ﻓﻛرة Functionھﻲ ﺑﻛﺗﺎﺑﺔ ﻛود ﻓﻲ Functionﻣﻧﻔﺻل
واﺳﺗدﻋﺎﺋﮫ ﻋﻧد اﻟﺣﺎﺟﺔ ،ﻟﻧﻔرض أﻧﮫ ﻟﯾس ﻟدﯾﻧﺎ Function
ﺟﺎھز ﻹﯾﺟﺎد ﻣرﺑﻊ اﻟﻌدد وﻧرﯾد اﻧﺷﺎء واﺣد ﻓﺳﯾﻛون ﻛﻣﺎ ﯾﻠﻲ:
)int power(int num
{
;return num*num
}
ﻋﺗد اﺳﺗدﻋﺎء اﻟداﻟﺔ ﻓﻲ main
;’import 'package:list/[Link]
{ )(void main A
;)var x=power(5
}
COMMENTS
ھﻲ ﻋﺑﺎرة ﻋن ﺟﻣل ﺗوﺿﯾﺣﯾﺔ ﯾﻘوم اﻟﻣﺑرﻣﺞ ﺑﺈﺿﺎﻓﺗﮭﺎ ﺿﻣن أي ﻣﻛﺎن ﻓﻲ
اﻟﻣﺷروع اﻟﺑرﻣﺟﻲ أﺛﻧﺎء ﺑﻧﺎﺋﮫ ،وﺗُﻌﺗﺑر اﻟﺗﻌﻠﯾﻘﺎت ﻛﺎﻟﻣﻔﺗﺎح ،ﻓﮭﻲ ﺗﮭدف إﻟﻰ
اﻟﻣﺷروع اﻟﺑرﻣﺟﻲ ﺳوا ًء ﻟﻠﺷﺧص اﻟذي ﻗﺎم ﺑﺑﻧﺎﺋﮫ أو ﺣﺗﻰ ﺗﺳﮭﯾل ﻗراءة
ﻷي ﺷﺧص آﺧر ﯾﺣﺎول ﻓﮭﻣﮫ أو اﻟﺗﻌدﯾل
//here will set comment
//here will set comment
أﻣﺎ اﻟﻧوع اﻟﺛﺎﻧﻲ ھو ﻟﻠﺗﻌﻠﯾﻘﺎت اﻟطوﯾﻠﺔ واﻟﺗﻲ ﻧﻘوم ﺑﺗﻣﯾزﯾﮭﺎ ،وھو
ﺑﺎﺳﺗﺧدام اﻟﺷرطﺔ اﻟﻣﺎﺋﻠﺔ ﻟﻠﯾﺳﺎر
ﺛم ﻋﻼﻣﺔ اﻟﻧﺟﻣﺔ ﻟﻔﺗﺢ اﻟﺗﻌﻠﯾﻖ ،ﺛم ﻧﻘوم ﺑﺈﻏﻼق اﻟﺗﻌﻠﯾﻖ ﻋﻛس اﻟﻔﺗﺢ وھو
ﺑﺈﺿﺎﻓﺔ ﻋﻼﻣﺔ اﻟﻧﺟﻣﺔ
ﻣﺗﺑوﻋﺔ ﺑﺎﻟﺷرطﺔ اﻟﻣﺎﺋﻠﺔ ﻟﻠﯾﺳﺎر ﻟﯾﺻﺑﺢ ﺑﺎﻟﺷﻛل اﻟﺗﺎﻟﻲ:
/* here will comments */
A 1
/* here will comments */
MAP
ھﻲ ﻛﺎﺋﻧﺎت ﻟﻛل ﻣﻧﮭﺎ ﻗﯾﻣﺔ وﻣﻔﺗﺎح .وﻛل ﻣن اﻟﻘﯾﻣﺔ أو اﻟﻣﻔﺗﺎح ﯾﻣﻛن أن
ﯾﻛون أي ﻧوع ﻣن اﻟﻛﺎﺋﻧﺎت.
{ = var names
'first’: ‘Sam',
'second’: Wadeea',
’'third’: Ali
;}
ﺣﯾث اﻟﻌﻧﺎﺻر ﻓﻲ اﻟﻌﺎﻣود اﻷﯾﺳر ھﻲ اﻟﻣﻔﺎﺗﯾﺢ واﻟﻌﺎﻣود اﻷﯾﻣن
ھﻲ اﻟﻘﯾم.
ﻛﻣﺎ ﯾﻣﻛن إﺿﺎﻓﺔ ﻋﻧﺻر ﺟدﯾد Mapﻓﻲ أي وﻗت:
''fourth’:’zed
:TRY – CATCH
ﺗﺳﺗﺧدم ھذه اﻟﺗﻌﻠﯾﻣﺔ ﻟﺗﺟﻧب اﻟوﻗوع ﻓﻲ ﺣﺎﻻت ﻓﺷل ﻟﻠﺑرﻧﺎﻣﺞ ﻋﻧد ورود
ﺧطﺄ وﯾﺗم ﻓﯾﮭﺎ وﺿﻊ ﻛل ﻣن اﻟﺑرﻧﺎﻣﺞ اﻟﻣطﻠوب أو اﻟﺟزء اﻟﻣطﻠوب ﻓﻲ
tryﻣﺛل اﻟﻌﻣﻠﯾﺎت اﻟﻣﮭﻣﺔ ﻓﺗﺢ ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت اﻷﺷﻛﺎل ﻓﻲ اﻟﺷﺑﻛﺔ وﻓﻲ
ﺣﺎل وﺟود أي ﺧطﺎ ﺳوف ﯾﻛﻣل اﻟﺗﻧﻔﯾذ ﻓﻲ catch
{ try
;var x = 5
;var y = 0
;var z = x/y
;)print (z
}
{)catch (e
;)'print ('divide by zero
}
CLASS
دارت ھﻲ ﻟﻐﺔ ﻛﺎﺋﻧﯾﺔ ﺗﺗﻌﺎﻣل ﻣﻊ CLASSواﻟﻌﻣﻠﯾﺎت ﻋﻠﯾﮭﺎ.
ﻛل ﻛﺎﺋن ھو ﻧﺳﺧﺔ ﻣن CLASSأﺳﺎﺳﻲ.
ﻟﻧﺑﺳط اﻻﻣر اﻟﺻﻧف ھو ﻋﺑﺎرة ﻋن ﻧوع ﺟدﯾد أرﯾد أﻧﺎ إﻧﺷﺎءه وﺑﻌد اﻻﻧﺗﮭﺎء
ﻣن ﺑﻧﺎءه آﺧذ ﻣﻧﮫ ﻧﺳﺦ ﺗﺳﻣﻰ OBJECTSﻛﺎﺋﻧﺎت.
{ class Point )(void printXAndY
;num x {
;num y ;)print(x
)point (num x, num y ;)print(y
{ }
;this.x = x }
;this.y = y
}
CLASS
ﺑﻌد أن ﺗم اﻧﺷﺎء CLASSﯾﻣﻛن اﺳﺗﺧداﻣﮫ ﻋدد ﻻ ﻧﮭﺎﺋﻲ ﻣن اﻟﻣرات ﺑﺎﻧﺷﺎء
ﻛﺎﺋن ﻣﻧﮫ ﻛﻣﺎ ﯾﻠﻲ:
;)Point p1 = new Point(5,3
وﻓﻲ ﺣﺎل ﻛﺗﺑﻧﺎ :
;)([Link]
ﺳوف ﯾﻘوم ﺑطﺑﺎﻋﺔ اﻟﻘﯾم ﻛﻣﺎ ﯾﻠﻲ:
٥
٦
ﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻟﻛﺎﺋن ﺑﺎﻟﺷﻛل اﻟﻣﺧﺗﺻر :ﻓﻲ dart
Point (this.x, this.y):
ﻣﻌﺮﻓﺎت اﻟﻮﺻﻮل:
ﻋﻠﻰ ﺧﻼف اﻟﻛﺛﯾر ﻣن ﻟﻐﺎت اﻟﺑرﻣﺟﺔ dartﻻ ﺗﺣوي ﻣﻌرﻓﺎت وﺻول
اﻟﻛﻼﺳﯾﻛﯾﺔ اﻧﻣﺎ ﺗﺣوي ﻓﻘط ﻣﻌرف اﻟﺧﺻوﺻﯾﺔ privateﻋﻠﻰ ﻣﺳﺗوى
اﻟﺣزﻣﺔ ﻛﻛل.
أي إذا أردﻧﺎ إﻧﺷﺎء ﻣﺗﻐﯾر ﺿﻣن ﺻﻧف classوھذا اﻟﻣﺗﻐﯾر ﻻ ﯾوﺟد أي
ﻛﻼس اﺧر ﯾﻣﻛﻧﮫ ﻣﻌرﻓﺔ ﻗﯾﻣﺗﮫ ﻧﻛﺗب اﻟﻣﺗﻐﯾر ﺑﺎﻟﺷﻛل:
;var _ x = 5
Static
ﻓﻧﻼﺣظ أﻧﮫ ﻋﻧد ﺗﻌرﯾف ﻣﺗﻐﯾرا ﻣن ﻧوع Staticﯾﺻﺑﺢ ﻗﯾﻣﺔ ﻧﻔﺳﮭﺎ ﻟﻛل
اﻟﻛﺎﺋﻧﺎت ﺑﺣﯾث إذا ﻋدﻟﺗﮭﺎ ﻷي ﻛﺎﺋن ﺳوف ﺗﺗﻌدل ﻟﻠﺟﻣﯾﻊ
A
اﻟﻮراﺛﺔ:
اﻟوراﺛﺔ ﻣﻔﮭوم ﺑﺳﯾط ﯾﺳﺎﻋدﻧﻲ ﻋﻠﻰ ﺑﻧﺎء classﺑﺎﻻﻋﺗﻣﺎد ﻋﻠﻰ أﺻﻧﺎف
ﺳﺎﺑﻘﺔ وﯾرﯾﺣﻧﻲ ﻣن ﻋﻧﺎء ﻛﺗﺎﺑﺗﮭﺎ ﻣن ﺟدﯾد.
ﻟﻧﻔرض أرﯾد إﻧﺷﺎء classﺳﯾﺎرة ﻟدﯾﮭﺎ )ﺳرﻋﺔ ،ﻟون ،وزن( و Function
ﻟﯾﻌطﯾﻧﻲ اﻟوﻗت
ھﻧﺎ ﻧﻼﺣظ أﻧﮫ ﻟدﯾﻧﺎ classاﻟﺳﯾﺎرة ﻓﯾﮫ ﻛل ﻣن اﻟﺳرﻋﺔ واﻟﻠون و
Functionاﻟﻣطﻠوب وﻟﻛﻧﻧﺎ ﺑﺣﺎﺟﺔ
ﻹﺿﺎﻓﺔ ﺧﺎﺻﺔ اﻟوزن .ﻓﮭﻧﺎ ﻧﺳﺗﺧدم اﻟوراﺛﺔ وﯾﻛون اﻟﺻﻧف اﻟﺟدﯾد ﻛﻣﺎ ﻓﻲ
اﻟﺷﻛل:
{ class car2 extends car
car2(num speed, String color) :
;)super(speed, color
;var weight A
ﺗﻢ اﻻﻧﺘﮭﺎء ﻣﻦ ﻣﻘﺪﻣﺔ
DART
A
اﻟﺗﻌرف ﻋﻠﻰ ﺑﯾﺋﺔ ﻓﻼﺗر
ﻓﻼﺗر ھﻲ ﻣﻧﺻﺔ ﺗطوﯾر ﺗطﺑﯾﻘﺎت ﺟوال ﻣﻔﺗوﺣﺔ اﻟﻣﺻدر أﻧﺷﺄت ﻣن ﻗﺑل
ﺟوﺟل وﺗﺳﺗﺧدم ھذه اﻟﻣﻧﺻﺔ ﻣن اﺟل ﺗطوﯾر ﺗطﺑﯾﻘﺎت أﻧظﻣﺔ اﻧدروﯾد و
iosوﻛذﻟك ﻧظﺎم ﻓوﺷﯾﺎ اﻟﺟدﯾد.
اﻟﻧﺳﺧﺔ اﻷوﻟﻰ ﻣن ﻓﻼﺗر واﻟﻣﻌروﻓﺔ ﺑــ skyاﻟﺳﻣﺎء ﻗد ﺑﻧﯾت ﻟﺗطوﯾر
ﺗطﺑﯾﻘﺎت اﻻﻧدروﯾد ﻋﺎم ۲۰۱٥وھﻛذا ﺗطورت ﺣﺗﻰ ﺑﺎﻗﻲ أﻧظﻣﺔ اﻟﺗﺷﻐﯾل.
ﯾﺟب أن ﻧﻧوه أن أي ﺷﻲء ﻓﻲ ﻓﻼﺗر ھو widgetﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل:
اﻟﻧص ،اﻟﺻورة واﻟزر ھﻲ widgetﺑﻌد ﺗﺟﮭﯾز اﻟﺑﯾﺋﺔ و اﺣد IDE
Android studio, IntliJ IDEA
اﻟﻣﺷروع اﻷول:
A