{"id":129993,"date":"2013-12-16T13:02:02","date_gmt":"2013-12-16T09:02:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=129993"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=129993","title":{"rendered":"<span class=\"post_title\">Eero \u2014 Objective-C \u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u0447\u0435\u043a<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/bc1\/bdd\/004\/bc1bdd0042866c4ed10c8fe20eb94cee.png\" align=\"left\"\/><\/p>\n<pre><code class=\"ruby\">#import &lt;Foundation\/Foundation.h&gt;  int main()   parts := ['hello', 'world']   greeting := ''   for String part in parts     if part == parts[0]       Locale myLocale = Locale.currentLocale       greeting &lt;&lt; part.capitalizedString     else       greeting &lt;&lt; ' '       greeting &lt;&lt; part    Log('%@', greeting + '!')   return 0 <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  \u041d\u0430 \u0434\u043d\u044f\u0445 \u0438\u0437 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u0441\u0442\u0432\u0430 \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <a href=\"http:\/\/eerolanguage.org\/\">\u043f\u0440\u043e\u0435\u043a\u0442 Eero<\/a> \u2014 \u0434\u0438\u0430\u043b\u0435\u043a\u0442 Objective-C \u0441 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u043b\u0435\u0433\u043a\u0438\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0440\u043e\u043d\u0442 \u0440\u0430\u0431\u043e\u0442 \u0438 Eero \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0443\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430<\/h4>\n<p>  \u0414\u043b\u044f \u0437\u0430\u0442\u0440\u0430\u0432\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043a\u0430 \u043a\u043e\u0434\u0430 \u043d\u0430 Eero \u0438 \u043d\u0430 Objective-C.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Objective-C<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"objectivec\">#import &lt;Foundation\/Foundation.h&gt;  @interface FileHelper : NSObject  @property (readonly) NSString* name; @property (readonly) NSString* format;  -(NSFileHandle*) openFile: (NSString*) path;  -(NSFileHandle*) openFile: (NSString*) path           withPermissions: (NSString*) permissions;  @end   @implementation FileHelper  -(NSString*) name {   return @&quot;Macintosh&quot;; }  -(NSString*) format {   return @&quot;HFS+&quot;; }  -(NSFileHandle*) openFile: (NSString*) path {   return [NSFileHandle fileHandleForReadingAtPath: path]; }  -(NSFileHandle*) openFile: (NSString*) path           withPermissions: (NSString*) permissions {    NSFileHandle* handle = nil;    if ([permissions isEqualTo: @&quot;readonly&quot;] || [permissions isEqualTo: @&quot;r&quot;]) {     handle = [NSFileHandle fileHandleForReadingAtPath: path];    } else if ([permissions isEqualTo: @&quot;readwrite&quot;] || [permissions isEqualTo: @&quot;rw&quot;]) {     handle = [NSFileHandle fileHandleForUpdatingAtPath: path];   }    return handle; }  @end <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Eero<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"ruby\">#import &lt;Foundation\/Foundation.h&gt;  interface FileHelper    String name   {readonly}   String format {readonly}    openFile: String, [withPermissions: String], return FileHandle  end   implementation FileHelper    name,   return String = 'Macintosh'   format, return String = 'HFS+'    openFile: String path, withPermissions: String = 'readonly', return FileHandle = nil      if permissions == 'readonly' or permissions == 'r'       return FileHandle.fileHandleForReadingAtPath: path      else if permissions == 'readwrite' or permissions == 'rw'       return FileHandle.fileHandleForUpdatingAtPath: path  end <\/code><\/pre>\n<\/div>\n<\/div>\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>  Eero \u044d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u043e \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0434\u0438\u0430\u043b\u0435\u043a\u0442 Objective-C. \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043e\u0440\u043a\u0430 LLVM\/clang \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u0442.\u0435. \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 LLVM\/Clang, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a, \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u043f\u0440\u043e\u0447\u0438\u0435. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f Eero \u043a\u043e\u0434\u0430 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 Objective-C \u043a\u043e\u0434 <sup><a href=\"#note1\">1<\/a><\/sup>.<\/p>\n<p>  \u0412 Eero \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 Cocoa-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0438 \u043b\u044e\u0431\u043e\u0439 Objective-C\/C++ \u043a\u043e\u0434, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0438\u0448\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u0422\u0430\u043a\u0436\u0435 \u043b\u0435\u0433\u043e\u043a \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441: \u0435\u0441\u043b\u0438 \u0434\u043b\u044f Eero-\u043a\u043b\u0430\u0441\u0441\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 Objective-C, \u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/639\/d04\/c4e\/639d04c4ec4d1757ddf8f07db93e7008.png\" align=\"right\"\/>\u041f\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443, Eero \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043e\u0449\u043d\u044b\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0430\u0445\u0430\u0440\u043e\u043c \u0434\u043b\u044f Objective-C, \u043f\u043e\u0432\u044b\u0448\u0430\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f \u043e\u0431\u044a\u0451\u043c \u043a\u043e\u0434\u0430. \u041f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0430\u0432\u0442\u043e\u0440\u0430 <i>(Andy Arvanitis)<\/i>, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043d \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0445\u043e\u0442\u0435\u043b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0441\u043a\u043e\u0431\u043e\u0447\u0435\u043a \u0432 Objective-C, \u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 \u0432\u044b\u0431\u0440\u0430\u043b, \u043a\u043e\u0433\u0434\u0430 \u0443\u0432\u0438\u0434\u0435\u043b \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0442\u043e\u043b\u0430-\u043f\u043e\u0441\u0442\u0430\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u0441\u0432\u043e\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u043c\u0435\u0448\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u043e\u0436\u0435\u043a. \u0418\u0442\u0430\u043a, \u044f\u0437\u044b\u043a \u043d\u0430\u0437\u0432\u0430\u043d \u0432 \u0447\u0435\u0441\u0442\u044c \u0444\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u0442\u043e\u043b\u0430 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Eero_Saarinen\">Eero Saarinen<\/a>. \u042f \u043d\u0435 \u0441\u0438\u043b\u0451\u043d \u0432 \u0444\u0438\u043d\u0441\u043a\u043e\u043c, \u043d\u043e \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0432\u0443\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a \u00ab\u044d\u0440\u043e\u00bb \u0441 \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u043e\u0433.<br \/>  <br clear=\"all\"\/>  <\/p>\n<h4>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/h4>\n<p>  <a href=\"http:\/\/eerolanguage.org\/documentation\/index.html\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a> \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u043b\u0435\u0433\u043a\u043e \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u044f\u0437\u044b\u043a\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u044d\u0442\u043e: \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0442\u044c, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Don%27t_repeat_yourself\">DRY<\/a>, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Wysiwyg\">WYSIWYG<\/a>. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u0432 \u044f\u0437\u044b\u043a\u0435 \u043c\u043d\u043e\u0433\u043e, \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435, \u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0443\u0441\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/422\/ad6\/4d5\/422ad64d52322fc9d0882239c9210c73.png\" align=\"left\"\/>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432 Eero \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0442\u0441\u0442\u0443\u043f\u044b, \u043a\u0430\u043a \u0432 Python \u0438\u043b\u0438 Ruby. \u0422\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430.  <\/p>\n<pre><code class=\"ruby\">int count = 0 while ( count &lt; 100 )   something = false   count++   i++; j++ <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/8e7\/415\/ef2\/8e7415ef268da885f0017c7dfabe2550.png\" align=\"left\"\/>\u0412 Eero \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u043e\u0442\u0430\u0446\u0438\u044e \u0441 \u0442\u043e\u0447\u043a\u043e\u0439, \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0431\u0435\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432 <i>(property)<\/i>. \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438.  <\/p>\n<pre><code class=\"ruby\">id myarray = NSMutableArray.new myarray.addObject: myobject myarray.insertObject: myobject, atIndex: 0 <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/5b0\/4e6\/5ac\/5b04e65ac6cab819a2c285ccabeb8ba3.png\" align=\"left\"\/>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 Objective-C \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0438\u043a\u0430\u043a \u0438\u043d\u0430\u0447\u0435, \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a \u0447\u0435\u0440\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u0432 Eero \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438 <i>(*)<\/i>.  <\/p>\n<pre><code class=\"ruby\">NSString mystring = myobject.description NSString otherString = (NSString) someObject <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/264\/a14\/1eb\/264a141ebc09cc8a1c5aa9c8905b0836.png\" align=\"left\"\/>\u041f\u0440\u0438 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u0442\u0438\u043f, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0432\u0435\u0434\u0435\u043d \u0438\u0437 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &quot;:=&quot;.  <\/p>\n<pre><code class=\"ruby\">i := 100 mystring := myobject.description <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/ee9\/472\/704\/ee9472704e53ac46719e8cc48c4bc46d.png\" align=\"left\"\/>\u0412 Eero \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0449\u044c, \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d <i>(namespaces)<\/i>. \u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abNS\u00bb \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0442.\u0435. \u0432\u0441\u0435 \u0442\u0438\u043f\u044b \u0438\u0437 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 <i>Foundation<\/i> \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430.  <\/p>\n<pre><code class=\"ruby\">mystring := String.stringWithUTF8String: &quot;Hello, World&quot; <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0438\u043c\u0435\u043d\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u043a\u0430\u043a \u043e\u043d\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u043a\u043e\u0434\u0435, \u0438, \u0435\u0441\u043b\u0438 \u0438\u043c\u044f \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b. \u0414\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u0432 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b <code>using prefix<\/code>.  <\/p>\n<pre><code class=\"go\">using prefix AB ... theAddressBook := AddressBook.sharedAddressBook <\/code><\/pre>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a: \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043e\u043f\u0443\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u0432 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:  <\/p>\n<pre><code class=\"go\">void AAPrint(String str)   NSLog('AA: %@', str);  void BBPrint(String str)   NSLog('BB: %@', str);  using prefix AA using prefix BB ... Print('test') \/\/ AA: test <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/bc8\/6a1\/49e\/bc86a149e1468c3a36db4764fc42817b.png\" align=\"left\"\/>\u0412 Eero \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043f\u0443\u0449\u0435\u043d\u0438\u044f, \u043e\u043d\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u0438\u043c\u0435\u043d\u0430 <i>bytes<\/i>, <i>length<\/i> \u0438 <i>encoding<\/i>:  <\/p>\n<pre><code class=\"ruby\">initWithBytes: const void*,        length: UInteger,      encoding: StringEncoding <\/code><\/pre>\n<p>  \u0422\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <i>void<\/i>.  <\/p>\n<pre><code class=\"ruby\">initWithBytes: const void*,        length: UInteger,      encoding: StringEncoding,         return id <\/code><\/pre>\n<p>  \u0412 Objective-C \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043c\u0435\u0442\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u0412 Eero \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043a\u043b\u0430\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0441 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438.  <\/p>\n<pre><code class=\"ruby\">interface MyClass   openFile String, [withPermissions: String], return FileHandle end <\/code><\/pre>\n<p>  \u0412 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u043d\u0430\u043a\u0430 &quot;=&quot;.  <\/p>\n<pre><code class=\"ruby\">implementation MyClass   openFile: String, withPermissions: String = 'r', return FileHandle     handle := nil       if permissions == 'r'         handle = FileHandle.fileHandleForReadingAtPath: file       else if permissions == 'w' or permissions == 'rw'         handle = FileHandle.fileHandleForUpdatingAtPath: file       return handle end <\/code><\/pre>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0435 \u0433\u0435\u0442\u0442\u0435\u0440\u044b:  <\/p>\n<pre><code class=\"ruby\">implementation MyClass    model, return String = 'G35'   serialNumber, return String = 'X344434AABC' end <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/c5c\/3ec\/21d\/c5c3ec21dda94a3cc98eed017e697e8b.png\" align=\"left\"\/>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u0435\u043a\u043b\u0430\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445.  <\/p>\n<pre><code class=\"ruby\">interface MyClass   String name {nonatomic, copy}   String desc {readonly} end <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/903\/b41\/422\/903b414220b21b0a877231250812d9d5.png\" align=\"left\"\/>\u041f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0442\u0441\u0442\u0443\u043f\u044b, \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u043a \u043a\u0430\u0440\u0435\u0442\u043a\u0438 &quot;^&quot;. \u041f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c Objective-C, \u0431\u043b\u043e\u043a\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e:  <\/p>\n<pre><code class=\"ruby\">myblock := (int x, int y)   if x &lt; 0     printf( &quot;value was negative! (%d)\\n&quot;, x )     x = 0   return x + y <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f:  <\/p>\n<pre><code class=\"ruby\">xyblock := (int x, int y | return x + y)  descriptions := mylist.mapWith: (id element | return element.description) <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/50e\/c18\/aba\/50ec18aba9395dc31d4119efb72048f2.png\" align=\"left\"\/>\u0412 Eero \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &quot;==&quot; \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043b\u0438\u0430\u0441\u043e\u043c \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 <i>isEqual<\/i>. \u0427\u0442\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a:  <\/p>\n<pre><code class=\"go\">mystring := MutableString.new mystring.appendString: 'Hello, World'  if mystring == 'Hello, World'   \/\/ \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u0441\u044e\u0434\u0430, \u0442.\u043a. \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435 \u0438\u0441\u0442\u0438\u043d\u043d\u043e <\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 &quot;+&quot; \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 <i>stringByAppendingString<\/i> \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0430\u043d\u043e \u0432\u0441\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430 \u043d\u0435\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c (\u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e <i>NSString<\/i> \u0438 \u0435\u0433\u043e \u0441\u0443\u0431\u043a\u043b\u0430\u0441\u0441\u044b):  <\/p>\n<pre><code class=\"ruby\">helloString := 'Hello' worldString := 'World'  helloWorldString := helloString + ', ' + worldString <\/code><\/pre>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &quot;&lt;&lt;&quot; \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 <i>appendString<\/i>:  <\/p>\n<pre><code class=\"ruby\">mystring := '' mystring &lt;&lt; 'Hello, World' <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b:  <\/p>\n<table>\n<tr>\n<td><b>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440<\/b><\/td>\n<td><b>\u0421\u0435\u043b\u0435\u043a\u0442\u043e\u0440<\/b><\/td>\n<td><b>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/b><\/td>\n<\/tr>\n<tr>\n<td>+<\/td>\n<td>plus:<\/td>\n<td>\u0412\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 +=<\/td>\n<\/tr>\n<tr>\n<td>&#8212;<\/td>\n<td>minus:<\/td>\n<td>\u0412\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 -=<\/td>\n<\/tr>\n<tr>\n<td>*<\/td>\n<td>multipliedBy:<\/td>\n<td>\u0412\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 *=<\/td>\n<\/tr>\n<tr>\n<td>\/<\/td>\n<td>dividedBy:<\/td>\n<td>\u0412\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \/=<\/td>\n<\/tr>\n<tr>\n<td>%<\/td>\n<td>modulo:<\/td>\n<td>\u0412\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 %=<\/td>\n<\/tr>\n<tr>\n<td>&lt;<\/td>\n<td>isLessThan:<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>&lt;=<\/td>\n<td>isLessThanOrEqualTo:<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>&gt;<\/td>\n<td>isGreaterThan:<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>&gt;=<\/td>\n<td>isGreaterThanOrEqualTo:<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>&lt;&lt;<\/td>\n<td>shiftLeft:<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>&gt;&gt;<\/td>\n<td>shiftRight:<\/td>\n<td><\/td>\n<\/tr>\n<\/table>\n<p><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/d8a\/f1c\/bb0\/d8af1cbb01e68580540ee6cc0a372f1a.png\" align=\"left\"\/><br \/>  \u041d\u0443, \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0432 \u044f\u0437\u044b\u043a\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d <code>goto<\/code>. \ud83d\ude42<br \/>  <br clear=\"all\"\/>  <br clear=\"all\"\/>  <\/p>\n<h4>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>  <i>\u0414\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u043e \u043e\u043f\u044b\u0442\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Eero \u0432 \u0441\u0431\u043e\u0440\u043a\u0435 2013-12-08, XCode 5.0.2 \u0438 Mac OS X 10.8.5.<\/i><\/p>\n<p>  \u0421\u0442\u0430\u0432\u0438\u0442\u0441\u044f Eero \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e <a href=\"http:\/\/downloads.eerolanguage.org\/easy%20installer\/\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c<\/a> \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f XCode, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0431\u043e\u0440\u043a\u0443 \u0444\u043e\u0440\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 LLVM. \u041f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u044b XCode \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 <i>.eero<\/i> \u0438 <i>.eeh<\/i> \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c XCode \u0438 \u0432\u0441\u0451, \u2014 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0440\u0430\u0431\u043e\u0442\u0435.<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0443, \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0434\u043f\u0438\u0441\u044c <i>\u00abNo Selection\u00bb<\/i>.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/c90\/20c\/998\/c9020c998f7eda5e3a0a19e8ff467883.png\"\/><br \/>  \u0422\u043e\u0447\u043d\u0435\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, XCode \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435, \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 <code>#pragma mark ...<\/code>, \u2014 \u043e\u043d\u0438 \u0432 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0432\u0438\u0434\u043d\u044b.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 <i>(\u043e\u043d \u0436\u0435 debugger)<\/i>, \u0432\u0441\u0451 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u041e\u0434\u043d\u0430\u043a\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e XCode \u043f\u0430\u0434\u0430\u043b \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 <i>quick help<\/i> \u043a \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0443. \u0415\u0449\u0451 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0430\u0432\u0442\u043e-\u043e\u0442\u0441\u0442\u0443\u043f\u044b, \u043d\u043e \u044d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043c\u0435\u043b\u043e\u0447\u044c. \u0411\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043e.<\/p>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u041b\u0438\u0447\u043d\u043e \u043d\u0430 \u043c\u0435\u043d\u044f Eero \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435. \u0414\u0430, \u044f\u0437\u044b\u043a \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043e\u043b\u043e\u0434 <i>(\u0434\u043e\u043c\u0435\u043d <a href=\"http:\/\/eerolanguage.org\">eerolanguage.org<\/a> \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u044f\u043d\u0432\u0430\u0440\u0435 2011, \u0430 \u043d\u0430 <a href=\"https:\/\/github.com\/eerolanguage\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435<\/a> \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0434\u0435\u043a\u0430\u0431\u0440\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0433\u043e\u0434\u0430)<\/i>, \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f <i>(\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u0441 IDE)<\/i>. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0435\u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043c\u0438\u0445 \u0438 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u0438\u0434\u043d\u043e, \u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0438 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u0439\u043a\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<h4>\u0421\u0441\u044b\u043b\u043a\u0438<\/h4>\n<p>  <\/p>\n<ul>\n<li><a href=\"http:\/\/eerolanguage.org\">\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/eerolanguage\">GitHub<\/a><\/li>\n<li><a href=\"http:\/\/andyarvanitis.com\/\">\u0411\u043b\u043e\u0433<\/a> \u0438 <a href=\"https:\/\/twitter.com\/andyarvanitis\">\u0442\u0432\u0438\u0442\u0442\u0435\u0440<\/a> \u0430\u0432\u0442\u043e\u0440\u0430 Andy Arvanitis<\/li>\n<\/ul>\n<hr\/>\n<p><i><a name=\"note1\"><\/a>1) \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Eero -&gt; Objective-C \u0441\u044b\u0440\u043e\u0432\u0430\u0442\u0430, \u0443 \u043c\u0435\u043d\u044f \u0443\u0434\u0430\u0447\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445.<br \/>  <\/i>    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/129993\/\"> http:\/\/habrahabr.ru\/post\/129993\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/bc1\/bdd\/004\/bc1bdd0042866c4ed10c8fe20eb94cee.png\" align=\"left\"\/><\/p>\n<pre><code class=\"ruby\">#import &lt;Foundation\/Foundation.h&gt;  int main()   parts := ['hello', 'world']   greeting := ''   for String part in parts     if part == parts[0]       Locale myLocale = Locale.currentLocale       greeting &lt;&lt; part.capitalizedString     else       greeting &lt;&lt; ' '       greeting &lt;&lt; part    Log('%@', greeting + '!')   return 0 <\/code><\/pre>\n<p>  <br clear=\"all\"\/>  \u041d\u0430 \u0434\u043d\u044f\u0445 \u0438\u0437 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u0441\u0442\u0432\u0430 \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <a href=\"http:\/\/eerolanguage.org\/\">\u043f\u0440\u043e\u0435\u043a\u0442 Eero<\/a> \u2014 \u0434\u0438\u0430\u043b\u0435\u043a\u0442 Objective-C \u0441 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u043b\u0435\u0433\u043a\u0438\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0440\u043e\u043d\u0442 \u0440\u0430\u0431\u043e\u0442 \u0438 Eero \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0443\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-129993","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/129993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=129993"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/129993\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=129993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=129993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=129993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}