Index: src/site/docs/dart-up-and-running/contents/ch03.html |
diff --git a/src/site/docs/dart-up-and-running/contents/ch03.html b/src/site/docs/dart-up-and-running/contents/ch03.html |
index c112a66e159082bf46d2aff3623d97ed50c0d85d..ebba63f0a692256f0181d1590e2d703db8fcf783 100644 |
--- a/src/site/docs/dart-up-and-running/contents/ch03.html |
+++ b/src/site/docs/dart-up-and-running/contents/ch03.html |
@@ -439,7 +439,7 @@ code/ch03/parseUri.dart |
<code class="literal">Uri()</code> <span class="keep-together">constructor</span>:</p><pre class="programlisting"><em><span class="remark">lang-dart |
code/ch03/uriFromComponents.dart |
</span></em>main() { |
- var uri = new Uri(scheme: 'http', host: 'example.org', |
+ var uri = new Uri(scheme: 'http', host: 'example.org', |
path: '/foo/bar', fragment: 'frag'); |
assert(uri.toString() == 'http://example.org/foo/bar#frag'); |
}</pre></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="ch03-dates-and-times"></a>Dates and Times</h3></div></div></div><p>A DateTime object is a point in time. The time zone is either UTC |
@@ -709,9 +709,7 @@ var degrees = 30; |
var radians = degrees * (math.PI / 180); |
// radians is now 0.52359. |
var sinOf30degrees = math.sin(radians); |
- |
-// Truncate the decimal places to 2. |
-assert(double.parse(sinOf30degrees.toStringAsPrecision(2)) == 0.5);</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>These functions use radians, not degrees!</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="ch03-maximum-and-minimum"></a>Maximum and Minimum</h3></div></div></div><p>The Math library provides <code class="literal">max()</code> and |
+assert((sinOf30degrees - 0.5).abs() < 0.01); // sin 30° = 0.5</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>These functions use radians, not degrees!</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="ch03-maximum-and-minimum"></a>Maximum and Minimum</h3></div></div></div><p>The Math library provides <code class="literal">max()</code> and |
<code class="literal">min()</code> methods:</p><pre class="screen"><em><span class="remark">lang-dart |
</span></em><em><span class="remark">ch03/math-tests.dart |
</span></em>assert(math.max(1, 1000) == 1000); |
@@ -796,19 +794,22 @@ List<Element> elems3 = querySelectorAll('#id p.class');</pre></div><div cl |
</span></em><em><span class="remark">ch03_html/ch03_html.dart |
</span></em><!-- In HTML: --> |
<p> |
- <span class="os linux">Words for Linux</span> |
- <span class="os mac">Words for Mac</span> |
- <span class="os win">Words for Windows</span> |
+ <span class="linux">Words for Linux</span> |
+ <span class="macos">Words for Mac</span> |
+ <span class="windows">Words for Windows</span> |
</p> |
<em><span class="remark"> |
</span></em>// In Dart: |
-final osList = ['mac', 'win', 'linux']; |
+final osList = ['macos', 'windows', 'linux']; |
var userOs = 'linux'; // In real code you'd programmatically determine this. |
for (var os in osList) { // For each possible OS... |
bool shouldShow = (os == userOs); // Does this OS match the user's OS? |
- for (var elem in querySelectorAll('.$os')) { // Find all elements for this OS. |
+ |
+ // Find all elements with class=os. For example, if os == 'windows', call |
+ // querySelectorAll('.windows') to find all elements with the class "windows". |
+ for (var elem in querySelectorAll('.$os')) { // String interpolation ($os) |
elem.hidden = !shouldShow; // Show or hide each element. |
} |
}</pre><p>When the right property isn’t available or convenient, you can |
@@ -1010,7 +1011,7 @@ main() { |
var httpRequest = new HttpRequest(); |
httpRequest.open('POST', dataUrl); |
- httpRequest.setRequestHeader('Content-type', |
+ httpRequest.setRequestHeader('Content-type', |
'application/x-www-form-urlencoded'); |
httpRequest.onLoadEnd.listen((e) => loadEnd(httpRequest)); |
httpRequest.send(encodedData); |
@@ -1020,13 +1021,13 @@ main() { |
data transmitted over a WebSocket can be a string, a blob, or an <a class="ulink" href="http://api.dartlang.org/html/ArrayBuffer.html" target="_top">ArrayBuffer.</a> |
Often, the data is a JSON-formatted string.</p><p>To use a WebSocket in your web app, first create a <a class="ulink" href="http://api.dartlang.org/html/WebSocket.html" target="_top">WebSocket</a> |
object, passing the WebSocket URL as an argument:</p><pre class="screen"><em><span class="remark">lang-dart |
-github.com/dart-lang/dart-samples/.../html5/web/websockets/basics/websocket_sample.dart |
+github.com/dart-lang/dart-samples/.../web/html5/websockets/basics/websocket_sample.dart |
</span></em>var ws = new WebSocket('ws://echo.websocket.org');</pre><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="ch03-sending-data"></a>Sending data</h4></div></div></div><p>To send string data on the WebSocket, use the |
<code class="literal">send()</code> method:</p><pre class="screen"><em><span class="remark">lang-dart |
-</span></em><em><span class="remark">github.com/dart-lang/dart-samples/.../html5/web/websockets/basics/websocket_sample.dart |
+</span></em><em><span class="remark">github.com/dart-lang/dart-samples/.../web/html5/websockets/basics/websocket_sample.dart |
</span></em>ws.send('Hello from Dart!');</pre></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a name="ch03-receiving-data"></a>Receiving data</h4></div></div></div><p>To receive data on the WebSocket, register a listener for |
message events:</p><pre class="screen"><em><span class="remark">lang-dart |
-<em><span class="remark">github.com/dart-lang/dart-samples/.../html5/web/websockets/basics/websocket_sample.dart |
+<em><span class="remark">github.com/dart-lang/dart-samples/.../web/html5/websockets/basics/websocket_sample.dart |
</span></em></span></em>ws.onMessage.listen((MessageEvent e) { |
print('Received message: ${e.data}'); |
});</pre><p>The message event handler receives a <a class="ulink" href="http://api.dartlang.org/html/MessageEvent.html" target="_top">MessageEvent</a> |
@@ -1035,7 +1036,7 @@ github.com/dart-lang/dart-samples/.../html5/web/websockets/basics/websocket_samp |
error, and (as shown earlier) message. Here’s an example of a method |
that creates a WebSocket object and registers handlers for open, |
close, error, and message events:</p><pre class="screen"><em><span class="remark">lang-dart |
-<em><span class="remark">github.com/dart-lang/dart-samples/.../html5/web/websockets/basics/websocket_sample.dart |
+<em><span class="remark">github.com/dart-lang/dart-samples/.../web/html5/websockets/basics/websocket_sample.dart |
</span></em></span></em>void initWebSocket([int retrySeconds = 2]) { |
var reconnectScheduled = false; |
@@ -1044,7 +1045,7 @@ github.com/dart-lang/dart-samples/.../html5/web/websockets/basics/websocket_samp |
void scheduleReconnect() { |
if (!reconnectScheduled) { |
- new Timer(new Duration(milliseconds: 1000 * retrySeconds), |
+ new Timer(new Duration(milliseconds: 1000 * retrySeconds), |
() => initWebSocket(retrySeconds * 2)); |
} |
reconnectScheduled = true; |
@@ -1152,7 +1153,7 @@ main() { |
.transform(UTF8.decoder) |
.transform(new LineSplitter()) |
.listen( |
- (String line) { |
+ (String line) { |
print('Got ${line.length} characters from stream'); |
}, |
onDone: () { print('file is now closed'); }, |
@@ -1219,7 +1220,7 @@ main() { |
}; |
HttpServer.bind('127.0.0.1', 8888).then((HttpServer server) { |
- server.listen((request) { |
+ server.listen((request) { |
print('Got request for ${request.uri.path}'); |
if (request.uri.path == '/languages/dart') { |
dartHandler(request); |
@@ -1330,7 +1331,7 @@ ch03/readFile.dart |
.transform(UTF8.decoder) |
.transform(new LineSplitter()) |
.listen( |
- (String line) { |
+ (String line) { |
print('Read ${line.length} bytes from stream'); |
});</pre><p>Use <code class="literal">UTF8.encode()</code> to encode a Dart string as a |
list of UTF8-encoded bytes:</p><pre class="screen"><em><span class="remark">lang-dart |
@@ -1395,7 +1396,7 @@ ch03/mirrors.dart |
String firstName; |
String lastName; |
int age; |
- |
+ |
Person(this.firstName, this.lastName, this.age); |
String get fullName => '$firstName $lastName'; |
@@ -1421,7 +1422,7 @@ ch03/mirrors.dart |
</span></em>showConstructors(ClassMirror mirror) { |
var constructors = mirror.declarations.values |
.where((m) => m is MethodMirror && m.isConstructor); |
- |
+ |
constructors.forEach((m) { |
print('The constructor ${m.simpleName} has ' |
'${m.parameters.length} parameters.'); |
@@ -1469,7 +1470,7 @@ InstanceMirror mirror = reflect(p); |
// Get the value of a property. |
var fullName = mirror.getField(#fullName).reflectee; |
assert(fullName == 'Bob Smith'); |
- |
+ |
// Set the value of a property. |
mirror.setField(#firstName, 'Mary'); |
assert(p.firstName == 'Mary');</pre></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="ch03-more-information-mirrors"></a>More Information</h3></div></div></div><p>The article <a class="ulink" href="https://www.dartlang.org/articles/reflection-with-mirrors/" target="_top">Reflection |
@@ -1485,4 +1486,4 @@ assert(p.firstName == 'Mary');</pre></div></div><div class="sect2"><div class="t |
<a class="ulink" href="http://api.dartlang.org/dart_typed_data.html" target="_top">dart:typed_data.</a> |
You can get yet more libraries by using the pub tool, discussed in the |
next chapter. The <a class="ulink" href="http://pub.dartlang.org/packages/args" target="_top">args,</a> <a class="ulink" href="http://api.dartlang.org/logging.html" target="_top">logging,</a> <a class="ulink" href="http://pub.dartlang.org/packages/polymer" target="_top">polymer,</a> and <a class="ulink" href="http://api.dartlang.org/unittest.html" target="_top"><span class="keep-together">unittest</span></a> libraries are just a |
- sampling of what you can install using pub.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. A Tour of the Dart Language </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Tools</td></tr></table></div> |
+ sampling of what you can install using pub.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. A Tour of the Dart Language </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Tools</td></tr></table></div> |