MteEVAL เป็นไลบรารีสำหรับรวบรวมและประเมินนิพจน์ขณะรันไทม์ นิพจน์จะถูกแปลงเป็นโค้ดไบต์ จากนั้นดำเนินการตามความต้องการด้วยเครื่องเสมือนแบบธรรมดา
ไลบรารีมีสี่รุ่น: Android (B4A), iOS (B4i), Java (B4J), JavaS2 (B4A/B4J)
JavaS2 เป็นไลบรารี่ประสิทธิภาพขั้นที่ 2 ของเราในภาษา Java ดั้งเดิม
ดูซอฟต์แวร์ Anywhere เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือการพัฒนาข้ามแพลตฟอร์ม B4A, B4i และ B4J
การสร้างนิพจน์ขณะรันไทม์เป็นเครื่องมือที่มีประสิทธิภาพที่ช่วยให้การคำนวณและโฟลว์ของโปรแกรมสามารถแก้ไขได้หลังการติดตั้ง ซึ่งมิฉะนั้นอาจต้องมีการอัปเดตทางกายภาพหรือโครงสร้างแอปพลิเคชันแบบกำหนดเอง ตัวอย่างเช่น แอปพลิเคชันใดๆ ที่ออกแบบมาเพื่อจัดการแผนการจ่ายผลตอบแทนอาจได้รับประโยชน์จากนิพจน์รันไทม์ ซึ่งผู้ใช้อาจต้องการปรับแต่งสูตรของแผนตามสมาชิกในทีม ส่วนผสมผลิตภัณฑ์ และเป้าหมายการขาย
MteEVAL ใช้คลาสเดียวชื่อ Codeblock Codeblock ของ MteEVAL ใช้ไวยากรณ์จาก Clipper 5 คอมไพเลอร์ xBase ที่มีชื่อเสียงในปี 1990 ซึ่งเป็นจุดเริ่มต้นของการสร้าง Codeblock เริ่มต้นด้วยเครื่องหมายปีกกาแบบเปิด ตามด้วยรายการพารามิเตอร์เผื่อเลือกระหว่างไพพ์ จากนั้นตามด้วยนิพจน์ และปิดท้ายด้วยเครื่องหมายปีกกาปิด
{| < parameters > | < expression > }คุณจะต้องคอมไพล์ Codeblock เพียงครั้งเดียว เมื่อคอมไพล์แล้ว คุณสามารถประเมินได้หลายครั้งตามต้องการ ทั้งหมดนี้มาพร้อมกับข้อโต้แย้งที่แตกต่างกันไป
ตัวอย่างที่ 1: Codeblock ที่ไม่มีพารามิเตอร์
Dim cb as Codeblock
cb.Initialize
cb.Compile( "{||5 + 3}" )
Result = cb.Eval 'Result=8ตัวอย่างที่ 2: Codeblock พร้อมพารามิเตอร์
Dim cb as Codeblock
cb.Initialize
cb.Compile( "{|length,width|length*width}" )
Area = cb.Eval2( Array( 3 , 17 ) ) 'Area=51เมื่อประเมิน Codeblock ด้วยพารามิเตอร์ ให้ใช้วิธี Eval2
ตัวอย่างที่ 3: คอมไพล์ Codeblock ประเมิน และทำซ้ำ
Dim cb as Codeblock
cb.Initialize
cb.Compile( "{|sales,r1,r2| r1*sales + iif( sales > 100000, (sales-100000)*r2, 0 ) }" )
Commission1 = cb.Eval2( Array( 152000 , . 08 , . 05 ) ) 'Commission1=14760
Commission2 = cb.Eval2( Array( 186100 , . 08 , . 07 ) ) 'Commission2=20915
Commission3 = cb.Eval2( Array( 320000 , . 08 , . 05 ) ) 'Commission3=36600 ไลบรารีนี้รองรับตัวดำเนินการสไตล์ C/Java ควบคู่ไปกับรายการฟังก์ชันเนทิฟ B4X ที่เพิ่มมากขึ้น