ภาษา Vala มีความคล้ายคลึงกันมากในรูปแบบไวยากรณ์กับ C# และนำแนวทางเชิงวัตถุไปใช้อย่างเต็มที่ รองรับการวิปัสสนา การอนุมานประเภท การรวบรวมขยะเนื่องจากการทดแทนการเรียก destructor โดยอัตโนมัติในขั้นตอนการคอมไพล์ (ARC เช่นเดียวกับใน Swift) ฟังก์ชันแลมบ์ดา แนวคิดของสัญญาณและสล็อต คล้ายกับที่ใช้ใน Qt แต่นำไปใช้ในระดับภาษา สตริง ประเภทต่างๆ การเขียนโปรแกรมทั่วไป การแบ่งส่วนอาเรย์ ตัวดำเนินการแจงนับคอลเลกชัน foreach ผู้รับมอบสิทธิ์ การปิด อินเทอร์เฟซ คุณสมบัติ และข้อยกเว้น
โดดเด่นที่สุด
-
ใหม่ คำสำคัญกับ สำหรับไวยากรณ์การโทรแบบเรียงซ้อน . ภายในพร้อมรองรับการสร้างตัวแปรท้องถิ่น:ด้วย (var x = y())
การเรียกใช้ฟังก์ชันที่ส่งคืนค่า:
ด้วย(y())
การเชื่อมต่อสัญญาณอย่างเข้มงวด
ไม่ใช่โมฆะ โหมดและการเรียกใหม่ "ด้วย" ซ้ำ ๆ -
ใหม่ วากยสัมพันธ์ ชิ้น - ตอนนี้ความว่างเปล่าถือเป็นองค์ประกอบแรกหรือสุดท้ายของคอลเลกชันarray[begin:] => array[begin:array.length-1] array[:end] => array[0:end] array[:] => array[0:array.length-1]
-
ตัวย่อ เขียนโปรเจ็กต์ C ใน Vala ใหม่เป็นบางส่วน (เมื่อโปรเจ็กต์จะมีการเรียกรหัส Vala จำนวนมากจาก C และในทางกลับกัน) -
ดำเนินการแล้ว ไม่ใช่สัญญาณเสมือนที่มีตัวฟังก์ชัน -
ที่ให้ไว้ สืบทอดเนมสเปซลูก
ที่มา: opennet.ru