
рджреВрд╕рд░реЗ рджрд┐рди, рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛
рдХрд┐ рдИрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд┐рд╕ рдЪрд░рдг
рдореЗрдВ рд╣реИ - рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓реНрдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдмреЛрд▓реАред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд╛рдо рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдореЛрд░реНрдЪрд╛ рдкрд╣рд▓реЗ рд╣реА рдмрди рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдИрд░реЛ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд╛рд╕ рд╣реИред
рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдИрд░реЛ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдкрд░ рдХреЛрдб рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЗ рдХреА рдкрд╛рд░рдВрдкрд░рд┐рдХ рддреБрд▓рдирд╛ред
рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА #import <Foundation/Foundation.h> @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 @"Macintosh"; } -(NSString*) format { return @"HFS+"; } -(NSFileHandle*) openFile: (NSString*) path { return [NSFileHandle fileHandleForReadingAtPath: path]; } -(NSFileHandle*) openFile: (NSString*) path withPermissions: (NSString*) permissions { NSFileHandle* handle = nil; if ([permissions isEqualTo: @"readonly"] || [permissions isEqualTo: @"r"]) { handle = [NSFileHandle fileHandleForReadingAtPath: path]; } else if ([permissions isEqualTo: @"readwrite"] || [permissions isEqualTo: @"rw"]) { handle = [NSFileHandle fileHandleForUpdatingAtPath: path]; } return handle; } @end
рдкрд░рд┐рдЪрдп
рдИрд░реЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдмрд╛рдЗрдирд░реА рд╕рдВрдЧрдд рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдмреЛрд▓реА рд╣реИред рдПрд▓рдПрд▓рд╡реАрдПрдо / рдХреНрд▓реИрдВрдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЕрд░реНрдерд╛рдд рдмрд╛рдЗрдирд░реА рдХреЛрдб рдХреЛ рд╕реАрдзреЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдорд╛рдирдХ рдПрд▓рдПрд▓рд╡реАрдПрдо / рдХреНрд▓реИрдВрдЧ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдбреАрдмрдЧрд░, рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдФрд░ рдЕрдиреНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдорд╛рдирдХ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдХреЛрдб
1 рдореЗрдВ рдИрд░реЛ рдХреЛрдб рдХреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рднреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рд╣реИред
рдИрд░реЛ рдореЗрдВ, рдЖрдк рд╕реАрдзреЗ рд╕рднреА рдХреЛрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдХрд┐рд╕реА рднреА рдЙрджреНрджреЗрд╢реНрдп-рд╕реА / рд╕реА ++ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдмрд╕ рдЖрд╡рд╢реНрдпрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд░рд┐рд╡рд░реНрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднреА рдЖрд╕рд╛рди рд╣реИ: рдпрджрд┐ рдПрдХ рдИрд░реЛ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИрдВред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдИрд░реЛ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА, рдкрдардиреАрдпрддрд╛, рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдХреЛрдб рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЪреАрдиреА рд╣реИред рд▓реЗрдЦрдХ
(рдПрдВрдбреА рдЕрд░реНрд╡рд╛рдирд╛рдЗрдЯрд┐рд╕) рдХреЗ рдЕрдиреБрд╕рд╛рд░ , рд╢реБрд░реВ рдореЗрдВ рд╡рд╣ рд╕рд┐рд░реНрдл рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рдХреЛрд╖реНрдардХ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рднрд╛рд╖рд╛ рдХрд╛ рдирд╛рдо рддрдм рдЪреБрдирд╛ рдЬрдм рдЙрд╕рдиреЗ рдПрдХ рдкреЗрдбрд╕реНрдЯрд▓ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ рдореЙрдбрд▓ рджреЗрдЦрд╛, рдЬрд┐рд╕рдиреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдкреИрд░реЛрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ред рддреЛ, рднрд╛рд╖рд╛ рдХрд╛ рдирд╛рдо рдлрд╝рд┐рдирд┐рд╢ рдЯреЗрдмрд▓ рдХреЗ рд╡рд╛рд╕реНрддреБрдХрд╛рд░
Eero Saarinen рдХреЗ рдирд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдлрд┐рдирд┐рд╢ рдореЗрдВ рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдирд╛рдо рдХреЛ рдкрд╣рд▓реЗ рд╢рдмреНрджрд╛рдВрд╢ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд╕рд╛рде "рдПрд░реЛ" рдХреА рддрд░рд╣ рд▓рдЧрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕
рдкреНрд░рд▓реЗрдЦрди рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд╛рд╖рд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛, рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣: рдкрдардиреАрдпрддрд╛, рд╕реБрд░рдХреНрд╖рд╛,
DRY ,
WYSIWYG ред рднрд╛рд╖рд╛ рдореЗрдВ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╡рд░рдг рд╣реИрдВ, рдореИрдВ рд╕рдм рдХреБрдЫ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЦреБрдж рдХреЛ рдПрдХ рдЫреЛрдЯреА рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╕реВрдЪреА рдореЗрдВ рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдИрд░реЛ рдореЗрдВ, рдкрд┐рдВрдбреЛрдВ рдХреА рддрд░рд╣, рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреЗ рдмрдЬрд╛рдп рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
int count = 0 while ( count < 100 ) something = false count++ i++; j++

рдИрд░реЛ рдореЗрдВ, рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЛ рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рддрд░реНрдХ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИред рдмреГрд╣рджрд╛рдиреНрддреНрд░ рдХреЗ рдмрд╛рдж рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХрдИ рддрд░реНрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
id myarray = NSMutableArray.new myarray.addObject: myobject myarray.insertObject: myobject, atIndex: 0

рдЪреВрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рдЖрдк рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдИрд░реЛ рдореЗрдВ рд╕рднреА рд╡рд░реНрдЧ рдкреНрд░рдХрд╛рд░ рдЪрд░ рдХреЛ рдПрд╕реНрдЯрд░рд┐рд╕реНрдХ
(*) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
NSString mystring = myobject.description NSString otherString = (NSString) someObject

рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдХрд╛рдЯ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рдСрдкрд░реЗрдЯрд░ ": =" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
i := 100 mystring := myobject.description

Eero
рдирд╛рдорд╕реНрдерд╛рди рдЬреИрд╕реА рдЕрджреНрднреБрдд рдЪреАрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЙрдкрд╕рд░реНрдЧ "рдПрдирдПрд╕" рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЕрд░реНрдерд╛рддреНред
рдлрд╝рд╛рдЙрдВрдбреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
mystring := String.stringWithUTF8String: "Hello, World"
рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╣рд▓реЗ рдЗрдХрд╛рдИ рдХреЗ рдирд╛рдореЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдирд╛рдо рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдкрдВрдЬреАрдХреГрдд рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЛ
using prefix
рдирд┐рд░реНрджреЗрд╢
using prefix
ред
using prefix AB ... theAddressBook := AddressBook.sharedAddressBook
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдореА рд╣реИ: рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЯрдХрд░рд╛рд╡ рдХреА рдШрдЯрдирд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдмрд╕ рдкрд╣рд▓реЗ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
void AAPrint(String str) NSLog('AA: %@', str); void BBPrint(String str) NSLog('BB: %@', str); using prefix AA using prefix BB ... Print('test')

рдИрд░реЛ рдореЗрдВ, рд╡рд┐рдзрд┐ рддрд░реНрдХреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ; рдпрджрд┐ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрдпрдирдХрд░реНрддрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ, рджрд▓реАрд▓реЛрдВ рдХреЛ
рдмрд╛рдЗрдЯреНрд╕ ,
рд▓рдВрдмрд╛рдИ рдФрд░
рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
initWithBytes: const void*, length: UInteger, encoding: StringEncoding
рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рдж рд░рд┐рдЯрд░реНрди рдорд╛рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рд╢реВрдиреНрдп рд╣реИ ред
initWithBytes: const void*, length: UInteger, encoding: StringEncoding, return id
рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ, рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдкреНрд░рдерд╛рдЧрдд рд╣реИред рдИрд░реЛ рдореЗрдВ, рдЖрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рддрд░реАрдХреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
interface MyClass openFile String, [withPermissions: String], return FileHandle end
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди "=" рд╕рдВрдХреЗрдд рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
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
рдЖрдк рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдЯрд░реНрди рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ рдЧреЗрдЯрд░реНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
implementation MyClass model, return String = 'G35' serialNumber, return String = 'X344434AABC' end

рдЧреБрдг рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЧреБрдг, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред
interface MyClass String name {nonatomic, copy} String desc {readonly} end

рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреИрд░реЗрдЯ рдЪрд┐рдиреНрд╣ "^" рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдмреНрд▓реЙрдХ рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧрддреЗ рд╣реИрдВ:
myblock := (int x, int y) if x < 0 printf( "value was negative! (%d)\n", x ) x = 0 return x + y
рдПрдХ рд▓реМрдХрд┐рдХ рд╕рдВрдХреЗрддрди рднреА рд╕рд░рд▓ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд▓реМрдЯреЗ рд╣реБрдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
xyblock := (int x, int y | return x + y) descriptions := mylist.mapWith: (id element | return element.description)

рдЬреАрд░реЛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП, == рдСрдкрд░реЗрдЯрд░
isEqual рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрдардиреАрдп рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреНрдпрд╛ рд╣реИ:
mystring := MutableString.new mystring.appendString: 'Hello, World' if mystring == 'Hello, World'
рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░ "+" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдХ
stringByAppendingString рд╕рдВрджреЗрд╢ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
NSString рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрд╡рд░реНрдЧ):
helloString := 'Hello' worldString := 'World' helloWorldString := helloString + ', ' + worldString
рдЗрд╕реА рддрд░рд╣, << рдСрдкрд░реЗрдЯрд░ рдПрдХ
appendString рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ:
mystring := '' mystring << 'Hello, World'
рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдСрдкрд░реЗрдЯрд░ | рдЪрдпрдирдХрд░реНрддрд╛ | рдЯрд┐рдкреНрдкрдгреА |
+ | рдкреНрд▓рд╕: | рд╕рд╣рд┐рдд + = рдСрдкрд░реЗрдЯрд░ |
- | рд╢реВрдиреНрдп рд╕реЗ: | рдСрдкрд░реЗрдЯрд░ рд╕рд╣рд┐рдд - = |
* | multipliedBy: | рдСрдкрд░реЗрдЯрд░ рд╕рд╣рд┐рдд = = |
/ | dividedBy: | рдСрдкрд░реЗрдЯрд░ / = рд╕рд╣рд┐рдд |
% | рд╕рд╛рдкреЗрдХреНрд╖: | рд╕рд╣рд┐рдд рдСрдкрд░реЗрдЯрд░% = |
< | isLessThan: | |
<= | isLessThanOrEqualTo: | |
> | isGreaterThan: | |
> = | isGreaterThanOrEqualTo: | |
<< | shiftLeft: | |
>> | shiftRight: | |

рдареАрдХ рд╣реИ, рдЕрдВрдд рдореЗрдВ,
goto
рд╕рдВрдХрд▓рдХ рд╕реНрддрд░ рдкрд░ рднрд╛рд╖рд╛ рдореЗрдВ рдирд┐рд╖рд┐рджреНрдз рд╣реИред :)
рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ
рдпрд╣ рдЦрдВрдб 2013-12-08, XCode 5.0.2 рдФрд░ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ 10.8.5 рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдИрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИредрдИрд░реЛ рдбрд╛рд▓рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдмрд╕ Xcode рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди
рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА LLVM рдХрдВрдкрд╛рдЗрд▓рд░ рдлреЛрд░реНрдХ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдореМрдЬреВрдж рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдирдИ
.eero рдФрд░
.eeh рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
Xcode рдЯреЗрдореНрдкреНрд▓реЗрдЯ рднреА
рдЬреЛрдбрд╝рддреА рд╣реИ ред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдпрд╣ Xcode рдФрд░ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЖрдк рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд┐рдВрдЯреЗрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдСрдЯреЛ-рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдоред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрд▓рд╛рд╕ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд╕рд╛рде рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рд╕реНрдЯреИрдЯрд┐рдХ рд╢рд┐рд▓рд╛рд▓реЗрдЦ
"рдиреЛ рд╕рд┐рд▓реЗрдХреНрд╢рди" рд╣реИ ред

рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, Xcode рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
#pragma mark ...
, - рд╡реЗ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдбрд┐рдмрдЧрд░
(рдЙрд░реНрдл рдбрд┐рдмрдЧрд░) рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХреА, рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ Xcode рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреА
рддреНрд╡рд░рд┐рдд рдорджрдж рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдСрдЯреЛ-рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЯреНрд░рд┐рдлрд╝рд▓ рд╣реИред рдФрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реАред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдИрд░реЛ рдиреЗ рдореБрдЭ рдкрд░ рд╕рдмрд╕реЗ рд╕реБрдЦрдж рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рд╛ред рд╣рд╛рдВ, рднрд╛рд╖рд╛ рдХрд╛рдлреА рдпреБрд╡рд╛ рд╣реИ
(рдЬрдирд╡рд░реА 2011 рдореЗрдВ eerolanguage.org рдбреЛрдореЗрди рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдФрд░ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрд╕ рд╡рд░реНрд╖ рджрд┐рд╕рдВрдмрд░ рдореЗрдВ рдЬреАрдердм рдкрд░ рджрд┐рдЦрд╛рдИ рджреА рдереА) , рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЗрд╕ рдЪрд░рдг рдХреА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ
(рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЖрдИрдбреАрдИ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг) ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдШреБрд▓рдирд╢реАрд▓ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рднрд╡рд┐рд╖реНрдп рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреА рддреАрд╡реНрд░ рдЗрдЪреНрдЫрд╛ рдереАред
рд╕рдВрджрд░реНрдн
1) рдлрд┐рд▓рд╣рд╛рд▓, рд░реВрдкрд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди Eero -> рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдирдо рд╣реИ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред