কাঁচা উপসর্গ যুক্তি কি? (ইন্টারেক্টিভ মূলধন পি)


9

এবং তারা কি জন্য ব্যবহার করা যেতে পারে?

(interactive "p")universal argumentডান থেকে একটি সংখ্যার যুক্তি লাগে ? এবং সর্বজনীন যুক্তি কেবল উভয় উপায়ে হয়, তাই মূলধনটি কী করে (interactive "P")?

উত্তর:


11

বিশ্বাস করা শক্ত যে, লোকেরা এখানে ইমাক্সের নিজস্ব বর্ণনার জন্য আপনাকে লিঙ্ক না দিয়েই এখানে এটি বর্ণনা করেছে:

"ইমাস জিজ্ঞাসা করুন!":, 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 16other (উভয়েরই সংখ্যাসূচক মান রয়েছে 16) - প্রচুর অন্যান্য ভিন্নতার মধ্যে।

    তবে এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ পার্থক্যটি nilবনাম অ- nil: অনেকগুলি কমান্ড ব্যবহারকারী উপসর্গের আর্গ ব্যবহার করে কিনা তার উপর নির্ভর করে ভিন্নভাবে কাজ করে।

  • "সাংখ্যিক" উপসর্গ ARG সত্যিই শুধু মান ফাংশন prefix-numeric-valueআয় যখন কাঁচা উপসর্গ ARG প্রয়োগ করা হয়েছিল। আইওডাব্লু, প্রকৃত কাঁচা ব্যবহারকারীর মিথস্ক্রিয়া থেকে কোনও পূর্ণসংখ্যার সাথে মানচিত্র হিসাবে বিবেচনা করা ভাল।

    এটা আপনি বলতে পারেন না ব্যবহারকারী আসলে একটি উপসর্গ যুক্তি ব্যবহার করা কিনা- তা কোন উপসর্গ যুক্তি ডিফল্ট পূর্ণসংখ্যা 1 মানচিত্র, ঠিক যেমন ব্যবহার করে C-u 1, M-1অথবা C-1


9

যখন কাঁচা উপসর্গ ইন্টারেক্টিভ কোড "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চেয়ে 1, কিন্তু কখনও করে একটি আবৃত থাকার intএকটি মোড়ানো বাঞ্ছনীয় int। (যতক্ষণ না আমি 15 পয়েন্ট পেতে পারি, বিটিডব্লিউ)
এইচআরইভেঞ্জ থেরাপিস্ট

@ ২৪ ঘন্টাআরভেঞ্জ থেরাপিস্ট: আপনাকে ঠিক 15-পয়েন্টের দোরগোড়ায় নিয়ে যাওয়ার পরে আপলোড করা হয়েছে। বাইরে যান এবং আইটেমগুলিতে কিছু আপ-ভোটিং করুন যা আপনাকে সহায়তা করে!
ড্যান

এটি মোড়কে বনাম মোড়কানো ints সম্পর্কে নয়। এটি মোটামুটি ints সম্পর্কে নয়। এবং +1 থেকে @kaushalmodi জোর দেওয়ার জন্য আপনি বলতে পারেন যে ব্যবহারকারী কেবল কাঁচা আর্গ ব্যবহার করে (মানটি কিনা তা পরীক্ষা করে) একটি উপসর্গের আর্গ ব্যবহার করেছেন কিনা nil
ড্রিউ

7

@ কাউশালমোদি উত্তর (এবং দরকারী পরীক্ষার কেস) এর সাথে আরও কিছুটা বিশদ যুক্ত করতে:

কাঁচা যুক্তি আপনার সাথে প্রদত্ত যুক্তিগুলির মধ্যে পার্থক্য করতে দেয় universal-argumentএবং digit-argument

একটি সংখ্যার উপসর্গের আর্গের সাহায্যে সর্বজনীন যুক্তিকে C-u4 (অর্থাত C-4) উপসর্গের আর্গুমেন্ট থেকে আলাদা করার কোনও উপায় নেই । কাঁচা যুক্তি সহ এগুলি পৃথক: (4)বনাম 4

একই সঙ্গে প্রযোজ্য negative-argument। কাঁচা যুক্তি হিসাবে আপনি C--এবং এর মধ্যে পার্থক্য করতে পারেন C-- 1: প্রথমটি আপনাকে -দ্বিতীয়টি দেবে -1। সংখ্যার যুক্তিতে রূপান্তরিত হলে তারা উভয়ই হবে -1

সুতরাং একটি কাঁচা যুক্তি ব্যবহারের সুবিধা এটি আপনাকে আরও সম্ভাব্য মান দেয়। আর্গুমেন্টটি কীভাবে নির্দিষ্ট করা হয়েছে তার উপর নির্ভর করে আপনি আলাদাভাবে আচরণ করে এমন কমান্ড লিখতে পারেন।

উদাহরণ হিসাবে, ডক স্ট্রিংটির জন্য একবার দেখুন yank। এই আদেশটি আচরণ করে C-uএবং C-4আলাদাভাবে:

যুক্তি হিসাবে কেবল কিউ দিয়ে শুরুতে পয়েন্ট দিন এবং শেষে চিহ্নিত করুন। যুক্তি এন দিয়ে, এনটি পুনরায় সর্বাধিক সাম্প্রতিক কিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.