การเขียนโปรแกรม Dart - ไวยากรณ์

ไวยากรณ์กำหนดชุดของกฎสำหรับการเขียนโปรแกรม ข้อกำหนดทุกภาษากำหนดไวยากรณ์ของตัวเอง โปรแกรม Dart ประกอบด้วย -

  • ตัวแปรและตัวดำเนินการ
  • Classes
  • Functions
  • นิพจน์และโครงสร้างการเขียนโปรแกรม
  • โครงสร้างการตัดสินใจและการวนซ้ำ
  • Comments
  • ไลบรารีและแพ็คเกจ
  • Typedefs
  • โครงสร้างข้อมูลแสดงเป็นคอลเล็กชัน / Generics

รหัสโผแรกของคุณ

เริ่มต้นด้วยตัวอย่าง "Hello World" แบบดั้งเดิม -

main() { 
   print("Hello World!"); 
}

main()ฟังก์ชันเป็นวิธีการที่กำหนดไว้ล่วงหน้าใน Dart วิธีนี้ทำหน้าที่เป็นจุดเข้าสู่แอปพลิเคชัน สคริปต์ Dart ต้องการไฟล์main() วิธีการดำเนินการ print() เป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าซึ่งพิมพ์สตริงหรือค่าที่ระบุไปยังเอาต์พุตมาตรฐานเช่นเทอร์มินัล

ผลลัพธ์ของโค้ดด้านบนจะเป็น -

Hello World!

ดำเนินการโปรแกรม Dart

คุณสามารถรันโปรแกรม Dart ได้สองวิธี -

  • ผ่านสถานีปลายทาง
  • ผ่าน WebStorm IDE

ผ่าน Terminal

ในการรันโปรแกรม Dart ผ่านเทอร์มินัล -

  • ไปที่เส้นทางของโปรเจ็กต์ปัจจุบัน
  • พิมพ์คำสั่งต่อไปนี้ในหน้าต่าง Terminal
dart file_name.dart

ผ่าน WebStorm IDE

ในการเรียกใช้โปรแกรม Dart ผ่าน WebStorm IDE -

  • คลิกขวาที่ไฟล์สคริปต์ Dart บน IDE (ไฟล์ควรมีนามสกุลmain() ฟังก์ชันเพื่อเปิดใช้งานการดำเนินการ)

  • คลิกที่ ‘Run <file_name>’ตัวเลือก ภาพหน้าจอที่เหมือนกันได้รับด้านล่าง -

คุณสามารถคลิก

ปุ่มหรือใช้ทางลัดCtrl+Shift+F10 เพื่อเรียกใช้สคริปต์ Dart

โผตัวเลือกบรรทัดคำสั่ง

ตัวเลือกบรรทัดคำสั่ง Dart ใช้เพื่อแก้ไขการเรียกใช้ Dart Script ตัวเลือกบรรทัดคำสั่งทั่วไปสำหรับ Dart มีดังต่อไปนี้ -

ซีเนียร์ No ตัวเลือกบรรทัดคำสั่งและคำอธิบาย
1 -c or --c

เปิดใช้งานทั้งการยืนยันและการตรวจสอบประเภท (โหมดที่เลือก)

2 --version

แสดงข้อมูลเวอร์ชัน VM

3 --packages <path>

ระบุพา ธ ไปยังไฟล์คอนฟิกูเรชันความละเอียดแพ็กเกจ

4 -p <path>

ระบุตำแหน่งที่จะค้นหาไลบรารีที่นำเข้า ไม่สามารถใช้ตัวเลือกนี้กับ --packages

5 -h or --help

แสดงวิธีใช้

การเปิดใช้งานโหมดตรวจสอบ

โปรแกรม Dart ทำงานในสองโหมดคือ -

  • โหมดตรวจสอบ
  • โหมดการผลิต (ค่าเริ่มต้น)

ขอแนะนำให้เรียกใช้ Dart VM ใน checked modeในระหว่างการพัฒนาและการทดสอบเนื่องจากจะเพิ่มคำเตือนและข้อผิดพลาดเพื่อช่วยในการพัฒนาและแก้ไขข้อบกพร่อง โหมดที่ตรวจสอบจะบังคับใช้การตรวจสอบต่างๆเช่นการตรวจสอบประเภทเป็นต้นหากต้องการเปิดโหมดที่ตรวจสอบให้เพิ่มตัวเลือก -c หรือ –-checked ก่อนชื่อไฟล์สคริปต์ในขณะที่เรียกใช้สคริปต์

อย่างไรก็ตามเพื่อให้แน่ใจว่าได้รับประโยชน์ด้านประสิทธิภาพในขณะรันสคริปต์ขอแนะนำให้รันสคริปต์ในไฟล์ production mode.

พิจารณาสิ่งต่อไปนี้ Test.dart ไฟล์สคริปต์ -

void main() { 
   int n = "hello"; 
   print(n); 
}

เรียกใช้สคริปต์โดยป้อน -

dart Test.dart

แม้ว่าจะมีการพิมพ์ไม่ตรงกันสคริปต์ก็ดำเนินการได้สำเร็จเมื่อปิดโหมดการตรวจสอบ สคริปต์จะให้ผลลัพธ์ต่อไปนี้ -

hello

ตอนนี้ลองเรียกใช้สคริปต์ด้วยตัวเลือก "- - เครื่องหมาย" หรือ "-c" -

dart -c Test.dart

หรือ,

dart - - checked Test.dart

Dart VM จะแสดงข้อผิดพลาดที่ระบุว่ามีประเภทไม่ตรงกัน

Unhandled exception: 
type 'String' is not a subtype of type 'int' of 'n' where 
   String is from dart:core 
   int is from dart:core 
#0  main (file:///C:/Users/Administrator/Desktop/test.dart:3:9) 
#1  _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart :261) 
#2  _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)

ตัวระบุในโผ

ตัวระบุคือชื่อที่กำหนดให้กับองค์ประกอบในโปรแกรมเช่นตัวแปรฟังก์ชัน ฯลฯ กฎสำหรับตัวระบุคือ -

ตัวระบุอาจมีทั้งอักขระและตัวเลข อย่างไรก็ตามตัวระบุไม่สามารถขึ้นต้นด้วยตัวเลข

  • ตัวระบุไม่สามารถใส่สัญลักษณ์พิเศษยกเว้นขีดล่าง (_) หรือเครื่องหมายดอลลาร์ ($)

  • ตัวระบุไม่สามารถเป็นคำหลัก

  • พวกเขาต้องมีเอกลักษณ์

  • ตัวระบุเป็นกรณี ๆ ไป

  • ตัวระบุต้องไม่มีช่องว่าง

ตารางต่อไปนี้แสดงตัวอย่างของตัวระบุที่ถูกต้องและไม่ถูกต้อง -

ตัวระบุที่ถูกต้อง ตัวระบุไม่ถูกต้อง
ชื่อจริง Var
ชื่อจริง ชื่อจริง
num1 ชื่อจริง
ผลลัพธ์ $ 1 หมายเลข

คำหลักในโผ

คำหลักมีความหมายพิเศษในบริบทของภาษา ตารางต่อไปนี้แสดงรายการคำหลักบางคำใน Dart

นามธรรม 1 ดำเนินการต่อ เท็จ ใหม่ นี้
เป็น 1 ค่าเริ่มต้น สุดท้าย โมฆะ โยน
ยืนยัน รอการตัดบัญชี 1 ในที่สุด ตัวดำเนินการ 1 จริง
async 2 ทำ สำหรับ ส่วนที่ 1 ลอง
async * 2 ไดนามิก 1 รับ 1 ปลูกใหม่ typedef 1
รอ 2 อื่น ถ้า กลับ หลากหลาย
หยุดพัก enum การดำเนินการ 1 ชุดที่ 1 เป็นโมฆะ
กรณี ส่งออก 1 นำเข้า 1 คงที่ 1 ในขณะที่
จับ ภายนอก 1 ใน สุดยอด ด้วย
ชั้นเรียน ขยาย คือ สวิตซ์ ผลผลิต 2
const โรงงาน 1 ห้องสมุด 1 ซิงค์ * 2 ผลผลิต * 2

ช่องว่างและเส้นแบ่ง

Dart ละเว้นช่องว่างแท็บและบรรทัดใหม่ที่ปรากฏในโปรแกรม คุณสามารถใช้ช่องว่างแท็บและบรรทัดใหม่ได้อย่างอิสระในโปรแกรมของคุณและคุณมีอิสระในการจัดรูปแบบและเยื้องโปรแกรมของคุณอย่างเป็นระเบียบและสม่ำเสมอซึ่งทำให้โค้ดอ่านและเข้าใจได้ง่าย

Dart คำนึงถึงตัวพิมพ์เล็กและใหญ่

โผเป็นกรณี ๆ ไป ซึ่งหมายความว่า Dart แยกความแตกต่างระหว่างอักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

ข้อความลงท้ายด้วยอัฒภาค

คำสั่งแต่ละบรรทัดเรียกว่าคำสั่ง แต่ละคำสั่งโผต้องลงท้ายด้วยอัฒภาค (;) บรรทัดเดียวสามารถมีหลายคำสั่ง อย่างไรก็ตามข้อความเหล่านี้ต้องคั่นด้วยอัฒภาค

ความคิดเห็นในโผ

ความคิดเห็นเป็นวิธีหนึ่งในการปรับปรุงความสามารถในการอ่านของโปรแกรม ข้อคิดเห็นสามารถใช้เพื่อรวมข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมเช่นผู้เขียนโค้ดคำแนะนำเกี่ยวกับฟังก์ชัน / สร้าง ฯลฯ คอมไพเลอร์ไม่สนใจความคิดเห็น

Dart สนับสนุนความคิดเห็นประเภทต่อไปนี้ -

  • Single-line comments ( // ) - ข้อความใด ๆ ที่อยู่ระหว่าง "//" และท้ายบรรทัดจะถือว่าเป็นความคิดเห็น

  • Multi-line comments (/* */) - ความคิดเห็นเหล่านี้อาจครอบคลุมหลายบรรทัด

ตัวอย่าง

// this is single line comment  
  
/* This is a   
   Multi-line comment  
*/

การเขียนโปรแกรมเชิงวัตถุใน Dart

Dart เป็นภาษาเชิงวัตถุ Object Orientation เป็นกระบวนทัศน์การพัฒนาซอฟต์แวร์ที่เป็นไปตามการสร้างแบบจำลองในโลกแห่งความจริง Object Orientation ถือว่าโปรแกรมเป็นชุดของอ็อบเจ็กต์ที่สื่อสารกันผ่านกลไกที่เรียกว่าเมธอด

  • Object- ออบเจ็กต์คือการนำเสนอแบบเรียลไทม์ของเอนทิตีใด ๆ ตาม Grady Brooch วัตถุทุกชิ้นต้องมีคุณสมบัติสามประการ -

    • State - อธิบายโดยคุณลักษณะของวัตถุ

    • Behavior - อธิบายว่าวัตถุจะทำงานอย่างไร

    • Identity - ค่าเฉพาะที่แยกความแตกต่างของวัตถุจากชุดของวัตถุที่คล้ายกัน

  • Class- คลาสในแง่ของ OOP คือพิมพ์เขียวสำหรับสร้างวัตถุ คลาสห่อหุ้มข้อมูลสำหรับออบเจ็กต์

  • Method - วิธีการอำนวยความสะดวกในการสื่อสารระหว่างวัตถุ

ตัวอย่าง: Dart และ Object Orientation

class TestClass {   
   void disp() {     
      print("Hello World"); 
   } 
}  
void main() {   
   TestClass c = new TestClass();   
   c.disp();  
}

ตัวอย่างข้างต้นกำหนดคลาส TestClass. ชั้นเรียนมีวิธีการdisp(). วิธีนี้จะพิมพ์สตริง“ Hello World” บนเทอร์มินัล คีย์เวิร์ดใหม่สร้างอ็อบเจกต์ของคลาส วัตถุเรียกใช้เมธอดdisp().

รหัสควรสร้างสิ่งต่อไปนี้ output -

Hello World