วิธีใช้อาร์กิวเมนต์ 'แบบโต้ตอบ' เมื่อเรียกใช้คำสั่งจากรหัส


12

ฉันมีคำสั่งที่เรียกtestใช้เพียงแค่การป้อนข้อมูลจากผู้ใช้และสะท้อนกลับ:

(defun test (input)
  (interactive "MInput: ")
  (message "%s" input))

ฉันต้องการเขียนฟังก์ชั่นอื่นซึ่งจะเรียกมันว่า ล้มเหลวต่อไปนี้:

(defun test-forward ()
  (interactive)
  (test))

ด้วยข้อผิดพลาดนี้

test-forward: Wrong number of arguments: (lambda (input) (interactive "MInput: ") (message "%s" input)), 0

สิ่งนี้สมเหตุสมผลเนื่องจากtestใช้หนึ่งอินพุต ทำtest's input &optionalก็ทำให้test-forwardผลตอบแทนที่nilไม่ต้องทำอะไร วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?

คำตอบ:


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.