การเขียนโปรแกรม 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>’ตัวเลือก ภาพหน้าจอที่เหมือนกันได้รับด้านล่าง -
คุณสามารถคลิก
โผตัวเลือกบรรทัดคำสั่ง
ตัวเลือกบรรทัดคำสั่ง 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