আমি সাময়িকভাবে কোনও কোডের একটি অংশে একটি ফাংশন ওভাররাইড করতে চাই।
উদাহরণস্বরূপ, নিম্নলিখিতগুলি নিন:
(defun nadvice/load-quiet (args)
(cl-destructuring-bind
(file &optional noerror nomessage nosuffix must-suffix)
args
(list file noerror t nosuffix must-suffix)))
(defun nadvice/idle-require-quiet (old-fun &rest args)
(advice-add 'load :filter-args #'nadvice/load-quiet)
(apply old-fun args)
(advice-remove #'load #'nadvice/load-quiet))
(advice-add 'idle-require-load-next :around #'nadvice/idle-require-quiet)
কি কাজ করে না:
- এই. যদি আমি পরামর্শটিকে ম্যানুয়ালি সক্ষম ও নিষ্ক্রিয় করা এড়াতে পারি এবং জিনিসগুলির যত্ন নেওয়ার জন্য ইমাক্সের একক থ্রেডযুক্ত প্রকৃতির উপরে বিশ্বাস করতে পারি তবে এটি আরও পরিষ্কার হবে।
cl-letf
আমাকে মূল ফাংশনটি উল্লেখ করতে দেবে না, তাই আমি:filter-args
সাধারণত যে জিনিসগুলি করি তা বাস্তবায়ন করতে পারি না।cl-flet
অন্যান্য ক্রিয়াকলাপগুলিতে ওভাররাইড করতে পারে না।noflet
এটি একটি বাহ্যিক প্যাকেজ, যা আমি এড়াতে চাই। (এছাড়াও আমার প্রয়োজনের চেয়ে অনেক বেশি কাজ করে)
cl-letf*
উভয়ের জন্যlet
গুলি।