একাধিক মন্তব্য মন্তব্য?


108

আমি (ধরণের) ইতিমধ্যে এই প্রশ্নের উত্তর জানি। তবে আমি বুঝতে পেরেছিলাম যে এটি ব্যবহারকারীদের তালিকায় এত ঘন ঘন জিজ্ঞাসা করা হয়, যাতে একটি শক্ত উত্তম উত্তর থাকতে হবে। আমার জ্ঞানের সর্বোপরি আর-তে কোনও মাল্টলাইন মন্তব্য কার্যকারিতা নেই So সুতরাং, কারও কি কোনও ভাল কাজের ক্ষেত্র রয়েছে?

যদিও আর-তে বেশ কিছুটা কাজ সাধারণত ইন্টারেক্টিভ সেশনগুলির সাথে জড়িত থাকে (যা বহুভাষার মন্তব্যের প্রয়োজনের বিষয়ে সন্দেহ পোষণ করে), এমন অনেক সময় আসে যখন আমাকে সহকর্মী এবং সহপাঠীদের কাছে স্ক্রিপ্টগুলি প্রেরণ করতে হত, যার বেশিরভাগ ক্ষেত্রে কোডের অনানুষ্ঠানিক ব্লক অন্তর্ভুক্ত থাকে। এবং অন্যান্য ভাষা থেকে আসা লোকদের জন্য এটি একটি মোটামুটি প্রাকৃতিক প্রশ্ন natural

অতীতে আমি উক্তি ব্যবহার করেছি। স্ট্রিংগুলি লাইনব্রেকগুলি সমর্থন করে, এর সাথে একটি আর স্ক্রিপ্ট চালায়

"
Here's my multiline comment.

"
a <- 10
rocknroll.lm <- lm(blah blah blah)
 ...

ঠিকভাবে কাজ করে. কারও কি এর চেয়ে ভাল সমাধান আছে?

উত্তর:


50

এটি মোটামুটি নিয়মিত মেলিং তালিকায় উঠে আসে, উদাহরণস্বরূপ আর-সহায়তায় সাম্প্রতিক থ্রেডটি দেখুন । Theকমত্যের উত্তরটি সাধারণত উপরে বর্ণিত উত্তর: এটি দেওয়া হয় যে ভাষার কোনও প্রত্যক্ষ সমর্থন নেই, আপনাকে উভয়কেই করতে হবে

  • অঞ্চল-থেকে-মন্তব্য কমান্ড রয়েছে এমন একটি সম্পাদকের সাথে কাজ করুন এবং বেশিরভাগ উন্নত আর সম্পাদকেরা তা করেন
  • if (FALSE)পূর্বে প্রস্তাবিত কনস্ট্রাক্টসগুলি ব্যবহার করুন তবে নোট করুন যে এটির জন্য এখনও সম্পূর্ণ বিশদকরণ প্রয়োজন এবং তাই সিন্টেক্সিকভাবে সঠিক হওয়া আবশ্যক

ধন্যবাদ। আপনি কি দার্শনিক জিনিস, ইত্যাদি বহুবিধ মন্তব্যের কোনও সম্ভাবনা আছে কি না সে সম্পর্কে কিছুটা প্রসারিত করতে আপত্তি করবেন?
হ্যামিল্টন

1
আমি মনে করি এটি পার্সারের প্রকৃতির কারণে এবং আর একটি ইন্টারেক্টিভ পরিবেশ (যেমন: কমান্ড-লাইন) না হয়ে বেশিরভাগ ফাইল-ভিত্তিক দোভাষী যেখানে মাল্টি-লাইন মন্তব্য বেশি সাধারণ হবে তার কারণেই এটি ঘটেছে I সুতরাং দার্শনিক নয় - এটি এভাবেই বেড়েছে।
ডার্ক এডেলবুয়েটেল

এখন যে কোডটি সংকলন করেছে, আমরা কি মনে করি যে বহু-লাইন মন্তব্যগুলি একটি উপস্থিতি তৈরি করবে?
এরি বি ফ্রিডম্যান

না, অন্তর্নিহিত পার্সারটি পরিবর্তন হয়নি।
ডার্ক এডেলবুয়েটেল

স্রেফ একটি উত্তর পোস্ট করেছেন যাতে সঠিক বাক্য গঠন প্রয়োজন হয় না, যদিও এটি এখানে স্ট্রিং টাইপের ডকুমেন্টিং এবং মন্তব্য করার জন্য সাধারণ কোড-ব্লক সক্ষম / অক্ষম টগলকে সক্ষম করার চেয়ে বেশি।
Thell


36

আরএসস্টুডিওর জন্য আমি একটি স্নিগ্ধ কৌশলটি সবেমাত্র আবিষ্কার করেছি এটি ব্যবহার করা #'কারণ এটি একটি স্ব-প্রসারণকারী মন্তব্য বিভাগ তৈরি করে (যখন আপনি এই জাতীয় রেখা থেকে নতুন লাইনে ফিরে আসেন বা এমন বিভাগে নতুন লাইন সন্নিবেশ করান তবে এটি স্বয়ংক্রিয়ভাবে মন্তব্য করা হবে)।


1
+1 তবে আমি এটি প্রথমে ভুল পেয়েছি - সম্ভবত এটি আরও পাঠযোগ্য:#'
bluenote10

এ তো ঝরঝরে! ভাল একটা. কারও কারও এই উত্তরটি @ সালভাডোর সরবরাহিত জবাবের সাথে একত্রিত করা উচিত কারণ এগুলি বিভিন্ন ক্ষেত্রে ব্যবহার করা যেতে পারে।
অ্যালেক্স ফেং

21

[আপডেট] মন্তব্যের ভিত্তিতে।

# An empty function for Comments
Comment <- function(`@Comments`) {invisible()}

#### Comments ####
Comment( `

  # Put anything in here except back-ticks.

  api_idea <- function() {
    return TRUE
  }

  # Just to show api_idea isn't really there...
  print( api_idea )

`)
####

#### Code. ####
foo <- function() {
  print( "The above did not evaluate!")
}
foo()

[আসল উত্তর]

এখানে আরও একটি উপায় ... নীচে পিকটি দেখুন। আরএসস্টুডিওতে কোড ব্লকটি কেটে পেস্ট করুন।

একাধিক মন্তব্য যা আইডিই ব্যবহারকে আরও কার্যকর করে তোলে তা হ'ল "গুড থিং", বেশিরভাগ আইডিই বা সাধারণ সম্পাদকদের সহজ মন্তব্য-আউট ব্লকগুলির মধ্যে পাঠ্য হাইলাইটিং থাকে না; যদিও কিছু লেখক এখানে স্ট্রিংগুলির মধ্যে পার্সিং নিশ্চিত করার জন্য সময় নিয়েছে। আর এর সাথে আমাদের কোনও মাল্টি-লাইন মন্তব্য বা এখানে স্ট্রিং নেই, তবে আরস্টুডিওতে অদৃশ্য এক্সপ্রেশন ব্যবহার করা সমস্ত সেই মঙ্গলভাব দেয়।

মাল্টিলাইন মন্তব্য, এখানে-স্ট্রিংস বা অ-এক্সিকিউটেড মন্তব্য ব্লকগুলির জন্য ব্যবহার করার জন্য কাঙ্ক্ষিত বিভাগটিতে কোনও ব্যাকটিক্স নেই যতক্ষণ না তখন এটি মূল্যবান কিছু হতে পারে।

#### Intro Notes & Comments ####
invisible( expression( `
{ <= put the brace here to reset the auto indenting...

  Base <- function()
  {      <^~~~~~~~~~~~~~~~ Use the function as a header and nesting marker for the comments
         that show up in the jump-menu.
         --->8---
  }

  External <- function()
  {
    If we used a function similar to:
      api_idea <- function() {

        some_api_example <- function( nested ) {
          stopifnot( some required check here )
        }

        print("Cut and paste this into RStudio to see the code-chunk quick-jump structure.")
        return converted object
      }

    #### Code. ####
    ^~~~~~~~~~~~~~~~~~~~~~~~~~ <= Notice that this comment section isnt in the jump menu!
                                  Putting an apostrophe in isn't causes RStudio to parse as text
                                  and needs to be matched prior to nested structure working again.
    api_idea2 <- function() {

    } # That isn't in the jump-menu, but the one below is...

    api_idea3 <- function() {

    }

  }

    # Just to show api_idea isn't really there...
    print( api_idea )
    }`) )
####

#### Code. ####
foo <- function() {
  print( "The above did not evaluate and cause an error!")
}

foo()

## [1] "The above did not evaluate and cause an error!"

এবং ছবি এখানে ...

কাঠামোগত মন্তব্য


1
আমি মনে করি আপনি সংজ্ঞায়িত করতে পারেন comment=function(z){invisible(expression(z))}যা লোকেরা বুঝতে পারে যে হেক কী চলছে!
স্পেসডম্যান

1
সম্ভবত আরও ভাল Comments<-function(`@Comments`)rm(`@Comments`),। মন্তব্য ইতিমধ্যে একটি বৈধ ফাংশন।
থেল

1
আরগ দিয়ে আপনার আসলে কিছু করা দরকার? ব্যাককোয়াইট দ্বারা সীমিত একটি বহুমাত্রিক এক্সপ্রেশন Comments=function(x){}যেখানে কাজ করবে x। এটি এর মূল্যায়ন করার চেষ্টা করবে না ...
স্পেসডম্যান

প্রতিধ্বনি সহ উত্স নুলকে দেখায় যখন খালি বন্ধনীগুলি অদৃশ্য থাকে না ()
থেল

তবে এর সাথে Comment <- function(`@Comments`) {invisible()}, যদি মন্তব্যটি খুব দীর্ঘ হয় তবে আপনি একটি ত্রুটি পাবেন:variable names are limited to 10000 bytes
নীরে

11

আমি দুটি বিকল্পের কথা ভাবতে পারি। প্রথম বিকল্পটি এমন একটি সম্পাদক ব্যবহার করা উচিত যা মন্তব্য এবং অকার্যকর অবস্থা (যেমন। গ্রহন) ব্লক করতে দেয়। দ্বিতীয় বিকল্পটি হল একটি if স্টেটমেন্ট ব্যবহার করা। তবে এটি আপনাকে কেবলমাত্র 'মন্তব্য' করতে পারবেন সঠিক আর সিনট্যাক্স। সুতরাং একটি ভাল সম্পাদক হ'ল পছন্দসই কর্মপরিকল্পনা।

if(FALSE){
     #everything in this case is not executed

}

9

যদি এটি অবিশ্বাস্যরূপে খুঁজে পান যে কোনও ভাষা এটির জন্য নয়।

এটি সম্ভবত সবচেয়ে পরিষ্কার কাজ:

anything="
first comment line
second comment line
"

3
আপনার মন্তব্যে উদ্ধৃতি না চাইলে ভাল কাজ করে;)
অবল্টর করুন

7

কেবল আরএসটিউডিও ইনস্টল করে মাল্টি-লাইন কোডগুলি মন্তব্য করার ওভারকিল্ড পদ্ধতি ব্যবহার করা ছাড়াও আপনি নোটপ্যাড ++ ব্যবহার করতে পারেন কারণ এটি আর এর সিনট্যাক্স হাইলাইটিং সমর্থন করে

(বহু-লাইন নির্বাচন করুন) -> সম্পাদনা করুন -> মন্তব্য / মন্তব্য নয় -> ব্লক মন্তব্য টগল করুন

নোট করুন যে কোডটি আপনাকে প্রথমে .আর উত্স হিসাবে সংরক্ষণ করতে হবে (লাল বর্ণিত)

নোট করুন যে কোডটি আপনাকে প্রথমে .আর উত্স হিসাবে সংরক্ষণ করতে হবে (লাল বর্ণিত)


2

আমি আর স্ক্রিপ্ট সম্পাদনা করতে ভিম ব্যবহার করি।

ধরা যাক আর স্ক্রিপ্টটি পরীক্ষা। আর, 3 টি পৃথক লাইনে "লাইন 1", "লাইন 2", এবং "3 লাইন 3" যুক্ত রয়েছে।

আমি "vim test.R" টাইপ করে Vim সহ কমান্ড লাইনে পরীক্ষা খুলি। তারপরে আমি প্রথম লাইনে গিয়ে মন্তব্য করতে চাই, টাইপ করে "কন্ট্রোল-ভি" লিখুন, শেষ লাইনে নীচে তীরটি লিখতে চাই, একটি মূলধন টাইপ করুন "Iোকানোর জন্য" "আমি" টাইপ করুন, এবং তারপরে আমি নীচে তীরচিহ্ন দ্বারা নির্বাচিত প্রতিটি লাইনে "#" যুক্ত করতে এস্কেপ কীটি চাপুন। ফাইলটি ভিমে সংরক্ষণ করুন এবং তারপরে ": wq" টাইপ করে ভিম থেকে প্রস্থান করুন। পরিবর্তনগুলি রাস্তুডিওতে দেখা উচিত।

ভিমের মন্তব্যগুলি মুছতে, "#" যে অক্ষরটি আপনি মুছতে চান তার উপরে প্রথম লাইনে শুরু করুন, আবার "কন্ট্রোল-ভি" করুন এবং আপনি যে "#" মুছে ফেলতে চান তার শেষ লাইনে তীরচিহ্নটি বদ্ধ করুন। তারপরে "dd" টাইপ করুন। "#" চিহ্নগুলি মুছে ফেলা উচিত।

পরীক্ষায় পরিবর্তনগুলি আসার মধ্যে কয়েক সেকেন্ডের ব্যবধানের ব্যবধান রয়েছে V


0

ইন RStudio একটি সহজ উপায় এই কাজ করতে আপনার মন্তব্য লিখতে হয় এবং একবার আপনি Ctrl + Shift + সি ব্যবহার করেছেন কোড আপনার লাইন মন্তব্য করতে, তারপর Ctrl + Shift + / ব্যবহার পড়া কর্মের জন্য একাধিক লাইনের সম্মুখের মন্তব্য reflow করতে।


-2

পাইথনে আপনি মন্তব্যগুলির আগে এবং পরে 3x একক উদ্ধৃতি সহ একটি বহুমাত্রিক মন্তব্য করেন। আমি আর এ চেষ্টা করেছি এবং এটিও কাজ করে বলে মনে হচ্ছে।

যেমন।

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