You are on page 1of 12

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(arr.length);.‬‬
‫‪FUNCTION‬‬

‫ﻓﻛرة ‪ Function‬ھﻲ ﺑﻛﺗﺎﺑﺔ ﻛود ﻓﻲ ‪ Function‬ﻣﻧﻔﺻل‬


‫واﺳﺗدﻋﺎﺋﮫ ﻋﻧد اﻟﺣﺎﺟﺔ ‪ ،‬ﻟﻧﻔرض أﻧﮫ ﻟﯾس ﻟدﯾﻧﺎ ‪Function‬‬
‫ﺟﺎھز ﻹﯾﺟﺎد ﻣرﺑﻊ اﻟﻌدد وﻧرﯾد اﻧﺷﺎء واﺣد ﻓﺳﯾﻛون ﻛﻣﺎ ﯾﻠﻲ‪:‬‬
‫)‪int power(int num‬‬
‫{‬
‫;‪return num*num‬‬
‫}‬
‫ﻋﺗد اﺳﺗدﻋﺎء اﻟداﻟﺔ ﻓﻲ ‪main‬‬
‫;’‪import 'package:list/list.dart‬‬
‫{ )(‪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‬‬
‫وﻓﻲ ﺣﺎل ﻛﺗﺑﻧﺎ ‪:‬‬
‫;)(‪p1.printXAndY‬‬
‫ﺳوف ﯾﻘوم ﺑطﺑﺎﻋﺔ اﻟﻘﯾم ﻛﻣﺎ ﯾﻠﻲ‪:‬‬
‫‪٥‬‬
‫‪٦‬‬
‫ﯾﻣﻛن ﻛﺗﺎﺑﺔ اﻟﻛﺎﺋن ﺑﺎﻟﺷﻛل اﻟﻣﺧﺗﺻر‪ :‬ﻓﻲ ‪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‬‬

You might also like