Google Apps Script:
การใช้ Shell แบบโต้ตอบ (REPL)

วิธีการ:

Google Apps Script, ภาษาสคริปต์ที่ใช้งานบนคลาวด์สำหรับการอัตโนมัติงานในผลิตภัณฑ์ของ Google, ไม่มีเครื่องมือ REPL ในตัวที่คล้ายกับภาษาอื่น ๆ เช่น Python หรือ Node.js ของ JavaScript อย่างไรก็ตาม, คุณสามารถจำลองประสบการณ์ที่คล้ายกันได้โดยใช้ฟีเจอร์การล็อกและการตรวจสอบบักของ Apps Script Editor หรือโดยการตั้งค่าสภาพแวดล้อมภายนอก ที่นี่, เราเน้นไปที่การสร้าง REPL แบบชั่วคราวภายใน Apps Script editor.

  1. การสร้างฟังก์ชัน REPL แบบชั่วคราว:
function myREPL() {
  var input = Logger.log('Enter your expression: ');
  try {
    var result = eval(input);
    Logger.log('Result: ' + result);
  } catch(e) {
    Logger.log('Error: ' + e.message);
  }
}

เนื่องจากไม่มีการใส่อินพุตโดยตรงจากผู้ใช้ในแบบที่เหมาะสมเช่นเดียวกับ REPL ตามปกติในสภาพแวดล้อม Apps Script, คุณสามารถปรับแต่งตัวแปร input ด้วยตนเองและรัน myREPL() เพื่อทดสอบนิพจน์ได้

  1. การเป็นตัวอย่างการทำงานของโค้ด:

สมมติว่าคุณต้องการประเมินค่า 2+2 คุณจะปรับเปลี่ยนฟังก์ชัน myREPL ดังนี้:

function myREPL() {
  var input = '2+2'; // กรอกนิพจน์ของคุณเองที่นี่
  // ส่วนที่เหลือยังคงเหมือนเดิม...
}

หลังจากรัน myREPL(), ตรวจสอบ Logs (View > Logs) สำหรับผลลัพธ์, ซึ่งควรจะดูเหมือน:

[20-xx-xxxx xx:xx:xx:xxx] Enter your expression:
[20-xx-xxxx xx:xx:xx:xxx] Result: 4
  1. การตรวจสอบบักด้วย Logger:

สำหรับการตรวจสอบบักที่ซับซ้อนมากขึ้น, ให้ใช้ Logger.log(variable); ภายในโค้ดของคุณเพื่อพิมพ์สถานะของตัวแปร, ช่วยให้คุณเข้าใจการไหลและสถานะระหว่างกลางของสคริปต์ของคุณ

การทำความเข้าใจลึกซึ้ง

ความคิดของ REPL มีรากฐานอย่างแน่นหนาในประวัติศาสตร์ของการคอมพิวเตอร์, มันเริ่มมาจากระบบการแบ่งเวลาใช้งานในช่วงปี 1960 ที่อนุญาตให้มีการโต้ตอบได้ ภาษาเช่น Lisp ได้รับความนิยมในสภาพแวดล้อมนี้, เนื่องจาก REPL เป็นสิ่งสำคัญสำหรับกระบวนการพัฒนาแบบไตร่ตรอง Google Apps Script, ที่เกิดขึ้นตามมาภายหลัง, ออกแบบมาโดยหลักสำหรับเว็บ, โฟกัสไปที่การอัตโนมัติงานในชุดผลิตภัณฑ์ของ Google มากกว่าการเขียนโปรแกรมแบบโต้ตอบผ่านคอนโซล

Google Apps Script โดยทั่วไปไม่รองรับการเขียนโค้ดแบบโต้ตอบและเรียลไทม์โดยตรงจากการเรียกใช้แบบกล่องเนื่องจากมีลักษณะเป็นคลาวด์และมุ่งเน้นการเผยแพร่แอพเว็บ รูปแบบการทำงานของมันหมุนวนรอบการทำงานของฟังก์ชันที่ถูกกระตุ้นโดยเหตุการณ์เว็บ, ทริกเกอร์ตามเวลา, หรือการเรียกใช้ด้วยตนเองภายในสภาพแวดล้อม, มากกว่าที่จะเป็นการตอบสนองทันทีที่มอบให้โดย REPL

แม้ว่า REPL แบบชั่วคราว และเครื่องมือการตรวจสอบบักภายใน Apps Script Editor จะเสนอระดับของการโต้ตอบบางอย่าง, แต่มันก็ไม่สามารถจำลองประสบการณ์การตอบสนองทันทีและประสิทธิภาพของ REPL แบบดั้งเดิมที่พบในหลายภาษาโปรแกรม นักพัฒนาที่กำลังมองหาประสบการณ์ REPL ที่มีความถูกต้องมากขึ้นกับเทคโนโลยีของ Google อาจสำรวจสภาพแวดล้อม JavaScript ภายนอกหรือ Node.js กับ API ของ Google ซึ่งสามารถให้เซสชันการเขียนโค้ดที่ตอบสนองและโต้ตอบมากขึ้น, แม้จะต้องมีการตั้งค่าเพิ่มเติมและอาจต้องออกจากสภาพแวดล้อม Apps Script โดยตรง