Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: src/site/docs/dart-up-and-running/contents/ch02.html

Issue 453093005: Regeneration and redirects for book content (Closed) Base URL: https://github.com/dart-lang/dartlang.org.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 --- 1 ---
2 # WARNING: GENERATED FILE. DO NOT EDIT. 2 # WARNING: GENERATED FILE. DO NOT EDIT.
3 # WANT TO CONTRIBUTE? SEE https://github.com/dart-lang/dart-up-and-running-book 3 # WANT TO CONTRIBUTE? SEE https://github.com/dart-lang/dart-up-and-running-book
4 layout: book 4 layout: book
5 title: "Chapter 2. A Tour of the Dart Language from Dart: Up and Running" 5 title: "Chapter 2. A Tour of the Dart Language from Dart: Up and Running"
6 description: "Read Chapter 2. A Tour of the Dart Language of Dart: Up and Runnin g, published by O'Reilly." 6 description: "Read Chapter 2. A Tour of the Dart Language of Dart: Up and Runnin g, published by O'Reilly."
7 --- 7 ---
8 <div class="navheader"><table width="100%" summary="Navigation header"><tr><th c olspan="3" align="center">Chapter 2. A Tour of the Dart Language</th></tr><tr><t d width="20%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><th w idth="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="chapter"><div c lass="titlepage"><div><div><h1 class="title"><a name="ch02"></a>Chapter 2. A Tou r of the Dart Language</h1></div></div></div><div class="toc"><p><b>Table of Con tents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch02.html#main-pri nt">A Basic Dart Program</a></span></dt><dt><span class="sect1"><a href="ch02.ht ml#ch02-concepts">Important Concepts</a></span></dt><dd><dl><dt><span class="sec t2"><a href="ch02.html#ch02-keywords">Keywords</a></span></dt><dt><span class="s ect2"><a href="ch02.html#ch02-runtime-modes">Runtime Modes</a></span></dt></dl>< /dd><dt><span class="sect1"><a href="ch02.html#variables">Variables</a></span></ dt><dd><dl><dt><span class="sect2"><a href="ch02.html#variables-default-value">D efault Value</a></span></dt><dt><span class="sect2"><a href="ch02.html#variables -optional-types">Optional Types</a></span></dt><dt><span class="sect2"><a href=" ch02.html#ch02-final-const">Final and Const</a></span></dt></dl></dd><dt><span c lass="sect1"><a href="ch02.html#built-in-types">Built-in Types</a></span></dt><d d><dl><dt><span class="sect2"><a href="ch02.html#numbers">Numbers</a></span></dt ><dt><span class="sect2"><a href="ch02.html#strings">Strings</a></span></dt><dt> <span class="sect2"><a href="ch02.html#booleans">Booleans</a></span></dt><dt><sp an class="sect2"><a href="ch02.html#lists">Lists</a></span></dt><dt><span class= "sect2"><a href="ch02.html#maps">Maps</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-symbols">Symbols</a></span></dt></dl></dd><dt><span class=" sect1"><a href="ch02.html#functions">Functions</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#functions-optional-parameters">Optional Paramet ers</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-main">The mai n() Function</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-func tions-first-class">Functions as First-Class Objects</a></span></dt><dt><span cla ss="sect2"><a href="ch02.html#ch02-lexical-scope">Lexical Scope</a></span></dt>< dt><span class="sect2"><a href="ch02.html#ch02-functions-lexical-closures">Lexic al Closures</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-funct ion-equality">Testing Functions for Equality</a></span></dt><dt><span class="sec t2"><a href="ch02.html#ch02-functions-return-values">Return Values</a></span></d t></dl></dd><dt><span class="sect1"><a href="ch02.html#operators">Operators</a>< /span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#op-arithmetic">Ari thmetic Operators</a></span></dt><dt><span class="sect2"><a href="ch02.html#op-e quality">Equality and Relational Operators</a></span></dt><dt><span class="sect2 "><a href="ch02.html#ch02-op-type-test">Type Test Operators</a></span></dt><dt>< span class="sect2"><a href="ch02.html#op-assign">Assignment Operators</a></span> </dt><dt><span class="sect2"><a href="ch02.html#op-logical">Logical Operators</a ></span></dt><dt><span class="sect2"><a href="ch02.html#op-bit">Bitwise and Shif t Operators</a></span></dt><dt><span class="sect2"><a href="ch02.html#op-other"> Other Operators</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02.h tml#control-flow-statements">Control Flow Statements</a></span></dt><dd><dl><dt> <span class="sect2"><a href="ch02.html#if-else">If and Else</a></span></dt><dt>< span class="sect2"><a href="ch02.html#for-loops">For Loops</a></span></dt><dt><s pan class="sect2"><a href="ch02.html#while">While and Do-While</a></span></dt><d t><span class="sect2"><a href="ch02.html#break">Break and Continue</a></span></d t><dt><span class="sect2"><a href="ch02.html#switch">Switch and Case</a></span>< /dt><dt><span class="sect2"><a href="ch02.html#assert">Assert</a></span></dt></d l></dd><dt><span class="sect1"><a href="ch02.html#exceptions">Exceptions</a></sp an></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#ch02-exceptions-throw ">Throw</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-exception s-catch">Catch</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-ex ceptions-finally">Finally</a></span></dt></dl></dd><dt><span class="sect1"><a hr ef="ch02.html#classes">Classes</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#ch02-instance-variables">Instance Variables</a></span></dt><dt> <span class="sect2"><a href="ch02.html#ch02-constructors">Constructors</a></span ></dt><dt><span class="sect2"><a href="ch02.html#ch02-methods">Methods</a></span ></dt><dt><span class="sect2"><a href="ch02.html#ch02-class-abstract">Abstract C lasses</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-implicit-i nterfaces">Implicit Interfaces</a></span></dt><dt><span class="sect2"><a href="c h02.html#ch02-class-extend">Extending a Class</a></span></dt><dt><span class="se ct2"><a href="ch02.html#ch02-mixins">Adding Features to a Class: Mixins</a></spa n></dt><dt><span class="sect2"><a href="ch02.html#ch02-class-vars-and-methods">C lass Variables and Methods</a></span></dt></dl></dd><dt><span class="sect1"><a h ref="ch02.html#generics">Generics</a></span></dt><dd><dl><dt><span class="sect2" ><a href="ch02.html#ch02-generics-why">Why Use Generics?</a></span></dt><dt><spa n class="sect2"><a href="ch02.html#generics-literals">Using Collection Literals< /a></span></dt><dt><span class="sect2"><a href="ch02.html#generics-constructors" >Using Parameterized Types with Constructors</a></span></dt><dt><span class="sec t2"><a href="ch02.html#generics-collections">Generic Collections and the Types t hey Contain</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02.html# libraries">Libraries and Visibility</a></span></dt><dd><dl><dt><span class="sect 2"><a href="ch02.html#libraries-import">Using Libraries</a></span></dt><dt><span class="sect2"><a href="ch02.html#libraries-implementing">Implementing Libraries </a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02.html#isolates">I solates</a></span></dt><dt><span class="sect1"><a href="ch02.html#typedefs">Type defs</a></span></dt><dt><span class="sect1"><a href="ch02.html#ch02-metadata">Me tadata</a></span></dt><dt><span class="sect1"><a href="ch02.html#comments">Comme nts</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#ch02-comme nts-single-line">Single-Line Comments</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-comments-multi-line">Multi-Line Comments</a></span></dt><dt ><span class="sect2"><a href="ch02.html#comments-doc">Documentation Comments</a> </span></dt></dl></dd><dt><span class="sect1"><a href="ch02.html#ch02-summary">S ummary</a></span></dt></dl></div><p>This chapter shows you how to use each major Dart feature, from 8 <div class="navheader"><table width="100%" summary="Navigation header"><tr><th c olspan="3" align="center">Chapter 2. A Tour of the Dart Language</th></tr><tr><t d width="20%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><th w idth="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="chapter"><div c lass="titlepage"><div><div><h1 class="title"><a name="ch02"></a>Chapter 2. A Tou r of the Dart Language</h1></div></div></div><div class="toc"><p><b>Table of Con tents</b></p><dl class="toc"><dt><span class="sect1"><a href="ch02.html#main-pri nt">A Basic Dart Program</a></span></dt><dt><span class="sect1"><a href="ch02.ht ml#ch02-concepts">Important Concepts</a></span></dt><dd><dl><dt><span class="sec t2"><a href="ch02.html#ch02-keywords">Keywords</a></span></dt><dt><span class="s ect2"><a href="ch02.html#ch02-runtime-modes">Runtime Modes</a></span></dt></dl>< /dd><dt><span class="sect1"><a href="ch02.html#variables">Variables</a></span></ dt><dd><dl><dt><span class="sect2"><a href="ch02.html#variables-default-value">D efault Value</a></span></dt><dt><span class="sect2"><a href="ch02.html#variables -optional-types">Optional Types</a></span></dt><dt><span class="sect2"><a href=" ch02.html#ch02-final-const">Final and Const</a></span></dt></dl></dd><dt><span c lass="sect1"><a href="ch02.html#built-in-types">Built-in Types</a></span></dt><d d><dl><dt><span class="sect2"><a href="ch02.html#numbers">Numbers</a></span></dt ><dt><span class="sect2"><a href="ch02.html#strings">Strings</a></span></dt><dt> <span class="sect2"><a href="ch02.html#booleans">Booleans</a></span></dt><dt><sp an class="sect2"><a href="ch02.html#lists">Lists</a></span></dt><dt><span class= "sect2"><a href="ch02.html#maps">Maps</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-symbols">Symbols</a></span></dt></dl></dd><dt><span class=" sect1"><a href="ch02.html#functions">Functions</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#functions-optional-parameters">Optional Paramet ers</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-main">The mai n() Function</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-func tions-first-class">Functions as First-Class Objects</a></span></dt><dt><span cla ss="sect2"><a href="ch02.html#ch02-lexical-scope">Lexical Scope</a></span></dt>< dt><span class="sect2"><a href="ch02.html#ch02-functions-lexical-closures">Lexic al Closures</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-funct ion-equality">Testing Functions for Equality</a></span></dt><dt><span class="sec t2"><a href="ch02.html#ch02-functions-return-values">Return Values</a></span></d t></dl></dd><dt><span class="sect1"><a href="ch02.html#operators">Operators</a>< /span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#op-arithmetic">Ari thmetic Operators</a></span></dt><dt><span class="sect2"><a href="ch02.html#op-e quality">Equality and Relational Operators</a></span></dt><dt><span class="sect2 "><a href="ch02.html#ch02-op-type-test">Type Test Operators</a></span></dt><dt>< span class="sect2"><a href="ch02.html#op-assign">Assignment Operators</a></span> </dt><dt><span class="sect2"><a href="ch02.html#op-logical">Logical Operators</a ></span></dt><dt><span class="sect2"><a href="ch02.html#op-bit">Bitwise and Shif t Operators</a></span></dt><dt><span class="sect2"><a href="ch02.html#op-other"> Other Operators</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02.h tml#control-flow-statements">Control Flow Statements</a></span></dt><dd><dl><dt> <span class="sect2"><a href="ch02.html#if-else">If and Else</a></span></dt><dt>< span class="sect2"><a href="ch02.html#for-loops">For Loops</a></span></dt><dt><s pan class="sect2"><a href="ch02.html#while">While and Do-While</a></span></dt><d t><span class="sect2"><a href="ch02.html#break">Break and Continue</a></span></d t><dt><span class="sect2"><a href="ch02.html#switch">Switch and Case</a></span>< /dt><dt><span class="sect2"><a href="ch02.html#assert">Assert</a></span></dt></d l></dd><dt><span class="sect1"><a href="ch02.html#exceptions">Exceptions</a></sp an></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#ch02-exceptions-throw ">Throw</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-exception s-catch">Catch</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-ex ceptions-finally">Finally</a></span></dt></dl></dd><dt><span class="sect1"><a hr ef="ch02.html#classes">Classes</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#ch02-instance-variables">Instance Variables</a></span></dt><dt> <span class="sect2"><a href="ch02.html#ch02-constructors">Constructors</a></span ></dt><dt><span class="sect2"><a href="ch02.html#ch02-methods">Methods</a></span ></dt><dt><span class="sect2"><a href="ch02.html#ch02-class-abstract">Abstract C lasses</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-implicit-i nterfaces">Implicit Interfaces</a></span></dt><dt><span class="sect2"><a href="c h02.html#ch02-class-extend">Extending a Class</a></span></dt><dt><span class="se ct2"><a href="ch02.html#ch02-mixins">Adding Features to a Class: Mixins</a></spa n></dt><dt><span class="sect2"><a href="ch02.html#ch02-class-vars-and-methods">C lass Variables and Methods</a></span></dt></dl></dd><dt><span class="sect1"><a h ref="ch02.html#generics">Generics</a></span></dt><dd><dl><dt><span class="sect2" ><a href="ch02.html#ch02-generics-why">Why Use Generics?</a></span></dt><dt><spa n class="sect2"><a href="ch02.html#generics-literals">Using Collection Literals< /a></span></dt><dt><span class="sect2"><a href="ch02.html#generics-constructors" >Using Parameterized Types with Constructors</a></span></dt><dt><span class="sec t2"><a href="ch02.html#generics-collections">Generic Collections and the Types t hey Contain</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02.html# libraries">Libraries and Visibility</a></span></dt><dd><dl><dt><span class="sect 2"><a href="ch02.html#libraries-import">Using Libraries</a></span></dt><dt><span class="sect2"><a href="ch02.html#libraries-implementing">Implementing Libraries </a></span></dt></dl></dd><dt><span class="sect1"><a href="ch02.html#isolates">I solates</a></span></dt><dt><span class="sect1"><a href="ch02.html#typedefs">Type defs</a></span></dt><dt><span class="sect1"><a href="ch02.html#ch02-metadata">Me tadata</a></span></dt><dt><span class="sect1"><a href="ch02.html#comments">Comme nts</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch02.html#ch02-comme nts-single-line">Single-Line Comments</a></span></dt><dt><span class="sect2"><a href="ch02.html#ch02-comments-multi-line">Multi-Line Comments</a></span></dt><dt ><span class="sect2"><a href="ch02.html#comments-doc">Documentation Comments</a> </span></dt></dl></dd><dt><span class="sect1"><a href="ch02.html#ch02-summary">S ummary</a></span></dt></dl></div><p>This chapter shows you how to use each major Dart feature, from
9 variables and operators to classes and libraries, with the assumption that 9 variables and operators to classes and libraries, with the assumption that
10 you already know how to program in another language.</p><div class="note" styl e="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>To pl ay with each feature, create a command-line application project 10 you already know how to program in another language.</p><div class="note" styl e="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>To pl ay with each feature, create a command-line application project
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 mode. In checked mode, <code class="literal">assert(<em class="replaceab le"><code>condition</code></em>)</code> 88 mode. In checked mode, <code class="literal">assert(<em class="replaceab le"><code>condition</code></em>)</code>
89 throws an exception unless <em class="replaceable"><code>condition</code ></em> is 89 throws an exception unless <em class="replaceable"><code>condition</code ></em> is
90 true. For details, see <a class="xref" href="ch02.html#assert" title="As sert">the section called “Assert”</a>.</p></div></div><div class="sect2"><div cl ass="titlepage"><div><div><h3 class="title"><a name="variables-optional-types">< /a>Optional Types</h3></div></div></div><p>You have the option of adding static types to your variable 90 true. For details, see <a class="xref" href="ch02.html#assert" title="As sert">the section called “Assert”</a>.</p></div></div><div class="sect2"><div cl ass="titlepage"><div><div><h3 class="title"><a name="variables-optional-types">< /a>Optional Types</h3></div></div></div><p>You have the option of adding static types to your variable
91 declarations:</p><pre class="programlisting"><em><span class="remark">lang -dart 91 declarations:</p><pre class="programlisting"><em><span class="remark">lang -dart
92 </span></em>String name = 'Bob';</pre><p>Adding types is a way to clearly expres s your intent. Tools such 92 </span></em>String name = 'Bob';</pre><p>Adding types is a way to clearly expres s your intent. Tools such
93 as compilers and editors can use these types to help you, by providing 93 as compilers and editors can use these types to help you, by providing
94 code completion and early warnings for bugs and code <span class="keep-tog ether">completion</span>.</p><div class="note" style="margin-left: 0.5in; margin -right: 0.5in;"><h3 class="title">Note</h3><p>This chapter follows the <a class= "ulink" href="http://www.dartlang.org/articles/style-guide/#type-annotations" ta rget="_top">style 94 code completion and early warnings for bugs and code <span class="keep-tog ether">completion</span>.</p><div class="note" style="margin-left: 0.5in; margin -right: 0.5in;"><h3 class="title">Note</h3><p>This chapter follows the <a class= "ulink" href="http://www.dartlang.org/articles/style-guide/#type-annotations" ta rget="_top">style
95 guide recommendation</a> of using <code class="literal">var</code>, rath er than type annotations, for local 95 guide recommendation</a> of using <code class="literal">var</code>, rath er than type annotations, for local
96 variables.</p></div></div><div class="sect2"><div class="titlepage"><div ><div><h3 class="title"><a name="ch02-final-const"></a>Final and Const</h3></div ></div></div><p>If you never intend to change a variable, use <code class="liter al">final</code> or <code class="literal">const</code>, either instead of <code class="literal">var</code> or in addition to a type. A final variable 96 variables.</p></div></div><div class="sect2"><div class="titlepage"><div ><div><h3 class="title"><a name="ch02-final-const"></a>Final and Const</h3></div ></div></div><p>If you never intend to change a variable, use <code class="liter al">final</code> or <code class="literal">const</code>, either instead of <code class="literal">var</code> or in addition to a type. A final variable
97 can be set only once; a const variable is a compile-time 97 can be set only once; a const variable is a compile-time
98 constant.</p><p>A local, top-level, or class variable that’s declared as < code class="literal">final</code> is initialized the first time it’s 98 constant.</p><p>A top-level or class variable that’s declared as <code cla ss="literal">final</code> is initialized the first time it’s
99 used:</p><pre class="programlisting"><em><span class="remark">lang-dart 99 used:</p><pre class="programlisting"><em><span class="remark">lang-dart
100 </span></em>final name = 'Bob'; // Or: final String name = 'Bob'; 100 </span></em>final name = 'Bob'; // Or: final String name = 'Bob';
101 // name = 'Alice'; // Uncommenting this results in an error</pre><div class=" note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h 3><p>Lazy initialization of final variables helps apps start up 101 // name = 'Alice'; // Uncommenting this results in an error</pre><div class=" note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h 3><p>Lazy initialization of final variables helps apps start up
102 faster.</p></div><p>Use <code class="literal">const</code> for variables that 102 faster.</p></div><p>Use <code class="literal">const</code> for variables that
103 you want to be compile-time constants. If the const variable is at the 103 you want to be compile-time constants. If the const variable is at the
104 class level, mark it <code class="literal">static const</code>. (Instance 104 class level, mark it <code class="literal">static const</code>. (Instance
105 variables can’t be const.) Where you declare the variable, set the value 105 variables can’t be const.) Where you declare the variable, set the value
106 to a compile-time constant such as a literal, a const variable, or the 106 to a compile-time constant such as a literal, a const variable, or the
107 result of an arithmetic operation on constant numbers:</p><pre class="prog ramlisting"><em><span class="remark">lang-dart 107 result of an arithmetic operation on constant numbers:</p><pre class="prog ramlisting"><em><span class="remark">lang-dart
108 </span></em>const bar = 1000000; // Unit of pressure (in dynes/cm2) 108 </span></em>const bar = 1000000; // Unit of pressure (in dynes/cm2)
109 const atm = 1.01325 * bar; // Standard atmosphere</pre></div></div><div class="s ect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="built-in-types"></a>Built-in Types</h2></div></div></div><p>The Dart langu age has special support for the following 109 const atm = 1.01325 * bar; // Standard atmosphere</pre></div></div><div class="s ect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="built-in-types"></a>Built-in Types</h2></div></div></div><p>The Dart langu age has special support for the following
110 types:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-sty le-type: disc; "><li class="listitem"><p>numbers</p></li><li class="listitem"><p >strings</p></li><li class="listitem"><p>booleans</p></li><li class="listitem">< p>lists (also known as <span class="emphasis"><em>arrays</em></span>)</p></li><l i class="listitem"><p>maps</p></li><li class="listitem"><p>symbols</p></li></ul> </div><p>You can initialize an object of any of these special types using a 110 types:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-sty le-type: disc; "><li class="listitem"><p>numbers</p></li><li class="listitem"><p >strings</p></li><li class="listitem"><p>booleans</p></li><li class="listitem">< p>lists (also known as <span class="emphasis"><em>arrays</em></span>)</p></li><l i class="listitem"><p>maps</p></li><li class="listitem"><p>symbols</p></li></ul> </div><p>You can initialize an object of any of these special types using a
111 literal. For example, <code class="literal">'this is a 111 literal. For example, <code class="literal">'this is a
112 string'</code> is a string literal, and <code class="literal">true</code> is a boolean literal.</p><p>Because every variable in Dart refers to an object—an instance of a 112 string'</code> is a string literal, and <code class="literal">true</code> is a boolean literal.</p><p>Because every variable in Dart refers to an object—an instance of a
113 <span class="emphasis"><em>class</em></span>—you can usually use 113 <span class="emphasis"><em>class</em></span>—you can usually use
114 <span class="emphasis"><em>constructors</em></span> to initialize variables. Some of the 114 <span class="emphasis"><em>constructors</em></span> to initialize variables. Some of the
115 built-in types have their own constructors. For example, you can use the 115 built-in types have their own constructors. For example, you can use the
116 <code class="literal">Map()</code> constructor to create a map, using code s uch as 116 <code class="literal">Map()</code> constructor to create a map, using code s uch as
117 <code class="literal">new Map()</code>.</p><div class="sect2"><div class="ti tlepage"><div><div><h3 class="title"><a name="numbers"></a>Numbers</h3></div></d iv></div><p>Dart numbers come in two flavors:</p><div class="variablelist"><dl c lass="variablelist"><dt><span class="term"><a class="ulink" href="http://api.dar tlang.org/dart_core/int.html" target="_top"> 117 <code class="literal">new Map()</code>.</p><div class="sect2"><div class="ti tlepage"><div><div><h3 class="title"><a name="numbers"></a>Numbers</h3></div></d iv></div><p>Dart numbers come in two flavors:</p><div class="variablelist"><dl c lass="variablelist"><dt><span class="term"><a class="ulink" href="http://api.dar tlang.org/dart_core/int.html" target="_top">
118 <code class="literal">int</code> </a></span></dt><dd><p>Integer values , which generally should be in the range 118 <code class="literal">int</code> </a></span></dt><dd><p>Integer values , which generally should be in the range
119 -2<sup>53</sup> to 2<sup>53</sup> 119 -2<sup>53</sup> to
120 </p></dd><dt><span class="term"><a class="ulink" href="http://api.da rtlang.org/dart_core/double.html" target="_top"> 120 2<sup>53</sup></p></dd><dt><span class="term"><a class="ulink" href= "http://api.dartlang.org/dart_core/double.html" target="_top">
121 <code class="literal">double</code> </a></span></dt><dd><p>64-bit (dou ble-precision) floating-point numbers, as 121 <code class="literal">double</code> </a></span></dt><dd><p>64-bit (dou ble-precision) floating-point numbers, as
122 specified by the IEEE 754 standard</p></dd></dl></div><p>Both <code class="literal">int</code> and <code class="literal">double</code> are subtypes of <a class="ulink" href="http://api.dartlang.org/dart_core/num.html" target="_t op"><code class="literal">num</code>.</a> The num type includes basic 122 specified by the IEEE 754 standard</p></dd></dl></div><p>Both <code class="literal">int</code> and <code class="literal">double</code> are subtypes of <a class="ulink" href="http://api.dartlang.org/dart_core/num.html" target="_t op"><code class="literal">num</code>.</a> The num type includes basic
123 operators such as +, -, /, and *, as well as bitwise operators such as 123 operators such as +, -, /, and *, as well as bitwise operators such as
124 &gt;&gt;. The num type is also where you’ll find 124 &gt;&gt;. The num type is also where you’ll find
125 <code class="literal">abs()</code>,<code class="literal"> ceil()</code>, a nd 125 <code class="literal">abs()</code>,<code class="literal"> ceil()</code>, a nd
126 <code class="literal">floor()</code>, among other methods. If num and its subtypes 126 <code class="literal">floor()</code>, among other methods. If num and its subtypes
127 don’t have what you’re looking for, the <a class="ulink" href="http://api. dartlang.org/dart_math.html" target="_top">Math</a> library might. 127 don’t have what you’re looking for, the <a class="ulink" href="http://api. dartlang.org/dart_math.html" target="_top">Math</a> library
128 </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Warning</h3><p>Integers outside of the -2<sup>53</sup> to 128 might.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0. 5in;"><h3 class="title">Warning</h3><p>Integers outside of the -2<sup>53</sup> t o
129 2<sup>53</sup> range currently behave differently in 129 2<sup>53</sup> range currently behave differently in
130 JavaScript produced from Dart code than they do when the same Dart 130 JavaScript produced from Dart code than they do when the same Dart
131 code runs in the Dart VM. The reason is that Dart is specified to have 131 code runs in the Dart VM. The reason is that Dart is specified to have
132 arbitrary-precision integers, but JavaScript isn't. See <a class="ulink" href="http://dartbug.com/1533" target="_top">issue 1533</a> for details.</p></d iv><p>Integers are numbers without a decimal point. Here are some 132 arbitrary-precision integers, but JavaScript isn't. See <a class="ulink" href="http://dartbug.com/1533" target="_top">issue 1533</a> for details.</p></d iv><p>Integers are numbers without a decimal point. Here are some
133 examples of defining integer literals:</p><pre class="programlisting"><em> <span class="remark">lang-dart 133 examples of defining integer literals:</p><pre class="programlisting"><em> <span class="remark">lang-dart
134 </span></em>var x = 1; 134 </span></em>var x = 1;
135 var hex = 0xDEADBEEF; 135 var hex = 0xDEADBEEF;
136 var bigInt = 346534658346524376592384765923749587398457294759347029438709349347; </pre><p>If a number includes a decimal, it is a double. Here are some 136 var bigInt = 346534658346524376592384765923749587398457294759347029438709349347; </pre><p>If a number includes a decimal, it is a double. Here are some
137 examples of defining double literals:</p><pre class="programlisting"><em>< span class="remark">lang-dart 137 examples of defining double literals:</p><pre class="programlisting"><em>< span class="remark">lang-dart
138 </span></em>var y = 1.1; 138 </span></em>var y = 1.1;
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 indicating that something unexpected happened. If the exception isn’t 745 indicating that something unexpected happened. If the exception isn’t
746 caught, the isolate that raised the exception is suspended, and typically 746 caught, the isolate that raised the exception is suspended, and typically
747 the isolate and its program are terminated.</p><p>In contrast to Java, all o f Dart’s exceptions are unchecked 747 the isolate and its program are terminated.</p><p>In contrast to Java, all o f Dart’s exceptions are unchecked
748 exceptions. Methods do not declare which exceptions they might throw, and 748 exceptions. Methods do not declare which exceptions they might throw, and
749 you are not required to catch any <span class="keep-together">exceptions</sp an>.</p><p>Dart provides <a class="ulink" href="http://api.dartlang.org/dart_cor e/Exception.html" target="_top">Exception</a> 749 you are not required to catch any <span class="keep-together">exceptions</sp an>.</p><p>Dart provides <a class="ulink" href="http://api.dartlang.org/dart_cor e/Exception.html" target="_top">Exception</a>
750 and <a class="ulink" href="http://api.dartlang.org/docs/continuous/dart_core /Error.html" target="_top">Error</a> 750 and <a class="ulink" href="http://api.dartlang.org/docs/continuous/dart_core /Error.html" target="_top">Error</a>
751 types, as well as numerous predefined subtypes. You can, of course, define 751 types, as well as numerous predefined subtypes. You can, of course, define
752 your own exceptions. However, Dart programs can throw any non-null 752 your own exceptions. However, Dart programs can throw any non-null
753 object—not just Exception and Error objects—as an exception.</p><div class=" sect2"><div class="titlepage"><div><div><h3 class="title"><a name="ch02-exceptio ns-throw"></a>Throw</h3></div></div></div><p>Here’s an example of throwing, or < span class="emphasis"><em>raising</em></span>, an 753 object—not just Exception and Error objects—as an exception.</p><div class=" sect2"><div class="titlepage"><div><div><h3 class="title"><a name="ch02-exceptio ns-throw"></a>Throw</h3></div></div></div><p>Here’s an example of throwing, or < span class="emphasis"><em>raising</em></span>, an
754 exception:</p><pre class="programlisting"><em><span class="remark">lang-da rt 754 exception:</p><pre class="programlisting"><em><span class="remark">lang-da rt
755 </span></em>throw new ExpectException('Value must be greater than zero');</pre>< p>You can also throw arbitrary objects:</p><pre class="programlisting"><em><span class="remark">lang-dart 755 </span></em>throw new FormatException('expected at least one section');</pre><p> You can also throw arbitrary objects:</p><pre class="programlisting"><em><span c lass="remark">lang-dart
756 </span></em>throw 'Out of llamas!';</pre><p>Because throwing an exception is an expression, you can throw 756 </span></em>throw 'Out of llamas!';</pre><p>Because throwing an exception is an expression, you can throw
757 exceptions in =&gt; statements, as well as anywhere else that allows 757 exceptions in =&gt; statements, as well as anywhere else that allows
758 expressions:</p><pre class="programlisting"><em><span class="remark">lang- dart 758 expressions:</p><pre class="programlisting"><em><span class="remark">lang- dart
759 </span></em>distanceTo(Point other) =&gt; throw new UnimplementedError();</pre>< /div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a na me="ch02-exceptions-catch"></a>Catch</h3></div></div></div><p>Catching, or captu ring, an exception stops the exception from 759 </span></em>distanceTo(Point other) =&gt; throw new UnimplementedError();</pre>< /div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a na me="ch02-exceptions-catch"></a>Catch</h3></div></div></div><p>Catching, or captu ring, an exception stops the exception from
760 propagating. Catching an exception gives you a chance to handle 760 propagating. Catching an exception gives you a chance to handle
761 it:</p><pre class="programlisting"><em><span class="remark">lang-dart 761 it:</p><pre class="programlisting"><em><span class="remark">lang-dart
762 </span></em>try { 762 </span></em>try {
763 breedMoreLlamas(); 763 breedMoreLlamas();
764 } on OutOfLlamasException { 764 } on OutOfLlamasException {
765 buyMoreLlamas(); 765 buyMoreLlamas();
(...skipping 815 matching lines...) Expand 10 before | Expand all | Expand 10 after
1581 // ... 1581 // ...
1582 } 1582 }
1583 1583
1584 /// Exercises your llama with an [activity] for 1584 /// Exercises your llama with an [activity] for
1585 /// [timeLimit] minutes. 1585 /// [timeLimit] minutes.
1586 void exercise(Activity activity, int timeLimit) { 1586 void exercise(Activity activity, int timeLimit) {
1587 // ... 1587 // ...
1588 } 1588 }
1589 }</pre><p>In the generated documentation, <code class="literal">[Food]</code> be comes a link to the API docs for the 1589 }</pre><p>In the generated documentation, <code class="literal">[Food]</code> be comes a link to the API docs for the
1590 Food class.</p><p>To parse Dart code and generate HTML documentation, you can use 1590 Food class.</p><p>To parse Dart code and generate HTML documentation, you can use
1591 the SDK’s 1591 the SDK’s <a class="ulink" href="http://www.dartlang.org/tools/docgen/" ta rget="_top">documentation generation
1592 <a class="ulink" href="http://www.dartlang.org/tools/docgen/" target="_top ">documentation generation tool.</a> For an example of generated 1592 tool.</a> For an example of generated documentation, see the <a class="uli nk" href="http://api.dartlang.org" target="_top">Dart API documentation.</a> For advice
1593 documentation, see the <a class="ulink" href="http://api.dartlang.org" tar get="_top">Dart API 1593 on how to structure your comments, see <a class="ulink" href="http://www.d artlang.org/articles/doc-comment-guidelines/" target="_top">Guidelines
1594 documentation.</a> For advice on how to structure your comments, see
1595 <a class="ulink" href="http://www.dartlang.org/articles/doc-comment-guidel ines/" target="_top">Guidelines
1596 for Dart Doc Comments.</a></p></div></div><div class="sect1"><div class="t itlepage"><div><div><h2 class="title" style="clear: both"><a name="ch02-summary" ></a>Summary</h2></div></div></div><p>This chapter summarized the commonly used features in the Dart 1594 for Dart Doc Comments.</a></p></div></div><div class="sect1"><div class="t itlepage"><div><div><h2 class="title" style="clear: both"><a name="ch02-summary" ></a>Summary</h2></div></div></div><p>This chapter summarized the commonly used features in the Dart
1597 language. More features are being implemented, but we expect 1595 language. More features are being implemented, but we expect that they
1598 that they won’t break existing code. For more information, see the <a class= "ulink" href="http://www.dartlang.org/docs/spec/" target="_top">Dart Language 1596 won’t break existing code. For more information, see the <a class="ulink" hr ef="http://www.dartlang.org/docs/spec/" target="_top">Dart Language
1599 Specification</a> and <a class="ulink" href="http://www.dartlang.org/article s/" target="_top">articles</a> such as <a class="ulink" href="http://www.dartlan g.org/articles/idiomatic-dart/" target="_top">Idiomatic Dart.</a></p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.ch02-footnote-1" class="footnote"><p><a href="#ch02-footnote-1" class=" para"><sup class="para">[1] </sup></a>URI stands for <em class="firstterm">unifo rm resource 1597 Specification</a> and <a class="ulink" href="http://www.dartlang.org/article s/" target="_top">articles</a> such as <a class="ulink" href="http://www.dartlan g.org/articles/idiomatic-dart/" target="_top">Idiomatic Dart.</a></p></div><div class="footnotes"><br><hr style="width:100; text-align:left;margin-left: 0"><div id="ftn.ch02-footnote-1" class="footnote"><p><a href="#ch02-footnote-1" class=" para"><sup class="para">[1] </sup></a>URI stands for <em class="firstterm">unifo rm resource
1600 identifier</em>. URLs (<em class="firstterm">uniform resource 1598 identifier</em>. URLs (<em class="firstterm">uniform resource
1601 locators</em>) are a common kind of URI.</p></div></div></div><div cla ss="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width ="40%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><td width="2 0%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="c h03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapte r 1. Quick Start </td><td width="20%" align="center"><a accesskey="h" href="inde x.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. A To ur of the Dart Libraries</td></tr></table></div> 1599 locators</em>) are a common kind of URI.</p></div></div></div><div cla ss="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width ="40%" align="left"><a accesskey="p" href="ch01.html">Prev</a> </td><td width="2 0%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="c h03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapte r 1. Quick Start </td><td width="20%" align="center"><a accesskey="h" href="inde x.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. A To ur of the Dart Libraries</td></tr></table></div>
OLDNEW
« no previous file with comments | « src/appengine/scripts/redirector.py ('k') | src/site/docs/dart-up-and-running/contents/ch03.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698