summaryrefslogtreecommitdiff
path: root/devdocs/gcc~13/using-fast-enumeration.html
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
committerCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
commit754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch)
treef1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/gcc~13/using-fast-enumeration.html
new repository
Diffstat (limited to 'devdocs/gcc~13/using-fast-enumeration.html')
-rw-r--r--devdocs/gcc~13/using-fast-enumeration.html18
1 files changed, 18 insertions, 0 deletions
diff --git a/devdocs/gcc~13/using-fast-enumeration.html b/devdocs/gcc~13/using-fast-enumeration.html
new file mode 100644
index 00000000..f212bd86
--- /dev/null
+++ b/devdocs/gcc~13/using-fast-enumeration.html
@@ -0,0 +1,18 @@
+<div class="subsection-level-extent" id="Using-fast-enumeration"> <div class="nav-panel"> <p> Next: <a href="c99-like-fast-enumeration-syntax" accesskey="n" rel="next">C99-Like Fast Enumeration Syntax</a>, Up: <a href="fast-enumeration" accesskey="u" rel="up">Fast Enumeration</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="subsection" id="Using-Fast-Enumeration"><span>8.9.1 Using Fast Enumeration<a class="copiable-link" href="#Using-Fast-Enumeration"> ¶</a></span></h1> <p>GNU Objective-C provides support for the fast enumeration syntax: </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">id array = …;
+id object;
+
+for (object in array)
+{
+ /* Do something with 'object' */
+}</pre>
+</div> <p><code class="code">array</code> needs to be an Objective-C object (usually a collection object, for example an array, a dictionary or a set) which implements the “Fast Enumeration Protocol” (see below). If you are using a Foundation library such as GNUstep Base or Apple Cocoa Foundation, all collection objects in the library implement this protocol and can be used in this way. </p> <p>The code above would iterate over all objects in <code class="code">array</code>. For each of them, it assigns it to <code class="code">object</code>, then executes the <code class="code">Do something with 'object'</code> statements. </p> <p>Here is a fully worked-out example using a Foundation library (which provides the implementation of <code class="code">NSArray</code>, <code class="code">NSString</code> and <code class="code">NSLog</code>): </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
+NSString *object;
+
+for (object in array)
+ NSLog (@"Iterating over %@", object);</pre>
+</div> </div><div class="_attribution">
+ <p class="_attribution-p">
+ &copy; Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br>
+ <a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Using-fast-enumeration.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Using-fast-enumeration.html</a>
+ </p>
+</div>