এবং তারা কি জন্য ব্যবহার করা যেতে পারে?
(interactive "p")
universal argument
ডান থেকে একটি সংখ্যার যুক্তি লাগে ? এবং সর্বজনীন যুক্তি কেবল উভয় উপায়ে হয়, তাই মূলধনটি কী করে (interactive "P")
?
এবং তারা কি জন্য ব্যবহার করা যেতে পারে?
(interactive "p")
universal argument
ডান থেকে একটি সংখ্যার যুক্তি লাগে ? এবং সর্বজনীন যুক্তি কেবল উভয় উপায়ে হয়, তাই মূলধনটি কী করে (interactive "P")
?
উত্তর:
বিশ্বাস করা শক্ত যে, লোকেরা এখানে ইমাক্সের নিজস্ব বর্ণনার জন্য আপনাকে লিঙ্ক না দিয়েই এখানে এটি বর্ণনা করেছে:
ইমাস ম্যানুয়ালটিতে নোড আর্গুমেন্ট ।
এলিসপ ম্যানুয়ালটিতে নোড প্রিফিক্স কমান্ড আর্গুমেন্ট ।
"ইমাস জিজ্ঞাসা করুন!":, C-h i
একটি ম্যানুয়াল চয়ন করুনi prefix argument RET
,।
সংক্ষেপে, যদিও এখানে অন্যান্য উত্তরের দ্বারা এটি যথেষ্ট পরিমাণে বলা হয়েছে, এবং ম্যানুয়ালটিতে বিশদভাবে বর্ণনা করা হয়েছে:
"কাঁচা" উপসর্গ ARG বিভিন্ন ধরণের পাতার মর্মর মান প্রদান করে, এবং বিশেষ করে এটা আলাদা থাকুক বা না থাকুক ব্যবহারকারী আসলে ব্যবহৃত (যে কোন ধরনের) একটি উপসর্গ যুক্তি।
এটা ব্যবহার করে, একটি প্রোগ্রাম আলাদা করতে পারেন ব্যবহারকারী {মধ্যে একটি ব্যবহার কিনা -
, M--
, C--
} বা এর {এক M-- 1
, C-- 1
, C-u -1
} (উভয়ই একই সাংখ্যিক উপসর্গ মূল্য আছে -1
), এবং পার্থক্য কিনা গুলি? তিনি ব্যবহার C-u C-u
বা এক { M-16
, C-16
, C-u 16
other (উভয়েরই সংখ্যাসূচক মান রয়েছে 16) - প্রচুর অন্যান্য ভিন্নতার মধ্যে।
তবে এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ পার্থক্যটি nil
বনাম অ- nil
: অনেকগুলি কমান্ড ব্যবহারকারী উপসর্গের আর্গ ব্যবহার করে কিনা তার উপর নির্ভর করে ভিন্নভাবে কাজ করে।
"সাংখ্যিক" উপসর্গ ARG সত্যিই শুধু মান ফাংশন prefix-numeric-value
আয় যখন কাঁচা উপসর্গ ARG প্রয়োগ করা হয়েছিল। আইওডাব্লু, প্রকৃত কাঁচা ব্যবহারকারীর মিথস্ক্রিয়া থেকে কোনও পূর্ণসংখ্যার সাথে মানচিত্র হিসাবে বিবেচনা করা ভাল।
এটা আপনি বলতে পারেন না ব্যবহারকারী আসলে একটি উপসর্গ যুক্তি ব্যবহার করা কিনা- তা কোন উপসর্গ যুক্তি ডিফল্ট পূর্ণসংখ্যা 1 মানচিত্র, ঠিক যেমন ব্যবহার করে C-u 1
, M-1
অথবা C-1
।
যখন কাঁচা উপসর্গ ইন্টারেক্টিভ কোড "P"
ব্যবহার করা হয় তখন আর্গুমেন্টটি যেমন হয় তেমন "p"
একটি সংখ্যায় রূপান্তরিত করে।
নীচের এলিজপটি মূল্যায়ন করার পরে, চেষ্টা করুন C-u M-x my/fn-with-num-arg
এবং তারপরে C-u M-x my/fn-with-raw-arg
পার্থক্যটি দেখুন কারণ C-u
একটি তালিকা আর্গুমেন্ট পাস করে (4)
।
(defun my/debug-fn (arg)
(let ((msg))
(if (numberp arg)
(setq msg (format "Argument is number %s. " (pp arg)))
(setq msg "Argument is not a number. "))
(if (listp arg)
(setq msg (concat msg (format "Arg is %s." (pp arg))))
(setq msg (concat msg "Argument is not a list.")))
(message msg)))
(defun my/fn-with-num-arg (arg)
(interactive "p")
(my/debug-fn arg))
;; Result of C-u M-x my/fn-with-num-arg :
;; Argument is number 4. Argument is not a list.
(defun my/fn-with-raw-arg (arg)
(interactive "P")
(my/debug-fn arg))
;; Result of C-u M-x my/fn-with-raw-arg :
;; Argument is not a number. Arg is (4)
;; .
এছাড়াও 1
সংখ্যার যুক্তি ( "p"
) এর জন্য যুক্তিটি ডিফল্ট হয় তবে কাঁচা যুক্তি nil
বা ( ) এর পক্ষে বা ডিফল্ট হয় ।()
"P"
আমার কয়েক সেন্ট: সময়ে, কিনা ব্যবহারের জন্য সিদ্ধান্ত ফ্যাক্টর "p"
বা "P"
কিনা আপনি ডিফল্ট যুক্তি হতে চাই 1
বা nil
।
;; Result of M-x my/fn-with-num-arg :
;; Argument is number 1. Argument is not a list.
;; Result of M-x my/fn-with-raw-arg :
;; Argument is not a number. Arg is nil.
nil
।
@ কাউশালমোদি উত্তর (এবং দরকারী পরীক্ষার কেস) এর সাথে আরও কিছুটা বিশদ যুক্ত করতে:
কাঁচা যুক্তি আপনার সাথে প্রদত্ত যুক্তিগুলির মধ্যে পার্থক্য করতে দেয় universal-argument
এবং digit-argument
।
একটি সংখ্যার উপসর্গের আর্গের সাহায্যে সর্বজনীন যুক্তিকে C-u
4 (অর্থাত C-4
) উপসর্গের আর্গুমেন্ট থেকে আলাদা করার কোনও উপায় নেই । কাঁচা যুক্তি সহ এগুলি পৃথক: (4)
বনাম 4
।
একই সঙ্গে প্রযোজ্য negative-argument
। কাঁচা যুক্তি হিসাবে আপনি C--
এবং এর মধ্যে পার্থক্য করতে পারেন C-- 1
: প্রথমটি আপনাকে -
দ্বিতীয়টি দেবে -1
। সংখ্যার যুক্তিতে রূপান্তরিত হলে তারা উভয়ই হবে -1
।
সুতরাং একটি কাঁচা যুক্তি ব্যবহারের সুবিধা এটি আপনাকে আরও সম্ভাব্য মান দেয়। আর্গুমেন্টটি কীভাবে নির্দিষ্ট করা হয়েছে তার উপর নির্ভর করে আপনি আলাদাভাবে আচরণ করে এমন কমান্ড লিখতে পারেন।
উদাহরণ হিসাবে, ডক স্ট্রিংটির জন্য একবার দেখুন yank
। এই আদেশটি আচরণ করে C-u
এবং C-4
আলাদাভাবে:
যুক্তি হিসাবে কেবল কিউ দিয়ে শুরুতে পয়েন্ট দিন এবং শেষে চিহ্নিত করুন। যুক্তি এন দিয়ে, এনটি পুনরায় সর্বাধিক সাম্প্রতিক কিল।
nil
চেয়ে1
, কিন্তু কখনও করে একটি আবৃত থাকারint
একটি মোড়ানো বাঞ্ছনীয়int
। (যতক্ষণ না আমি 15 পয়েন্ট পেতে পারি, বিটিডব্লিউ)