From 654a19b091c0f05362ee7799355b74c9c1da75ed Mon Sep 17 00:00:00 2001 From: Steve Klabnik Date: Thu, 3 Jul 2014 13:11:15 -0400 Subject: [PATCH] Guide: comments --- src/doc/guide.md | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/doc/guide.md b/src/doc/guide.md index dc9608563e1..b5a493ffeee 100644 --- a/src/doc/guide.md +++ b/src/doc/guide.md @@ -940,11 +940,54 @@ fn foo(x: int) -> int { There are some additional ways to define functions, but they involve features that we haven't learned about yet, so let's just leave it at that for now. + ## Comments -return +Now that we have some functions, it's a good idea to learn about comments. +Comments are notes that you leave to other programmers to help explain things +about your code. The compiler mostly ignores them. -comments +Rust has two kinds of comments that you should care about: **line comment**s +and **doc comment**s. + +```{rust} +// Line comments are anything after '//' and extend to the end of the line. + +let x = 5i; // this is also a line comment. + +// If you have a long explanation for something, you can put line comments next +// to each other. Put a space between the // and your comment so that it's +// more readable. +``` + +The other kind of comment is a doc comment. Doc comments use `///` instead of +`//`, and support Markdown notation inside: + +```{rust} +/// `hello` is a function that prints a greeting that is personalized based on +/// the name given. +/// +/// # Arguments +/// +/// * `name` - The name of the person you'd like to greet. +/// +/// # Example +/// +/// ```rust +/// let name = "Steve"; +/// hello(name); // prints "Hello, Steve!" +/// ``` +fn hello(name: &str) { + println!("Hello, {}!", name); +} +``` + +When writing doc comments, adding sections for any arguments, return values, +and providing some examples of usage is very, very helpful. + +You can use the `rustdoc` tool to generate HTML documentation from these doc +comments. We will talk more about `rustdoc` when we get to modules, as +generally, you want to export documentation for a full module. ## Compound Data Types