рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЕрдкрдиреА рдкрд╣рд▓реА рдиреМрдХрд░реА рдорд┐рд▓реА рдФрд░ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖реБ рдбреЗрд╡рд▓рдкрд░ рдмрди рдЧрдпрд╛, рд╣рдорд╛рд░реА рдЯреАрдо рд╕реНрдХрд╛рд▓рд╛ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рджрд┐рди рд╕рднреА рдиреМрд╕рд┐рдЦрд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЦреЛ рдЧрдП рд╣реИрдВред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдирдП рдирд╛рдореЛрдВ, рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ, рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдвреЗрд░, рдФрд░ рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛, рдмрд┐рд▓реНрдХреБрд▓ рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реИ, рдпрд╣ рдкрд╣рд▓рд╛ рдХрд╛рдо рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдЕрднреА рднреА рдЙрд╕ рднрд╛рд╖рд╛ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд░реВрдВрдЧрд╛, рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рддрдХ рдореИрдВрдиреЗ рдХрднреА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рднреА рдирд╣реАрдВ рдерд╛ред рдиреАрдЪреЗ рдкрдВрдХреНрддрд┐: рдкрд╣рд▓реЗ рджрд┐рди рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдерд╛ред рдкреВрдЫреЗрдВ рдХрд┐ рдлрд┐рд░ рдореБрдЭреЗ рдпрд╣ рдиреМрдХрд░реА рдХреИрд╕реЗ рдорд┐рд▓реА? рдореИрдВ рдЬрд╛рд╡рд╛ рдХреЛ рдЬрд╛рдирддрд╛ рдерд╛, рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЬрд╛рд╡рд┐рд╕реНрддрд╛ рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрдЯреНрдЯрд╛рди рдкрд░ рдЬрд╛ рд╕рдХреЗрдВрдЧреЗ рдФрд░ рдЖрдк рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдЕрднреА рднреА рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдкрд╛рда рд╕реЗ рднрд░реА рд╕реНрдХреНрд░реАрди рджреЗрдЦреА, рдЬрд┐рд╕рдореЗрдВ рд▓рдЧрднрдЧ рдЖрдзрд╛ рд╕реНрдкрд╖реНрдЯ рдерд╛ред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛, рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реБрдИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдереНрдп рдХрд┐ рдмрд╣реБрдд рдХреБрдЫ рдЕрд▓рдЧ рдерд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪрд░ рдХрд╛ рдирд╛рдо рдХреЗ рдмрд╛рдж рднреА рдЖрддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
final String str = "abc";
val str = "abc"
рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
int sum(int a, int b) {return a+b;}
def sum(a: Int, b: Int) = {a + b}
рдФрд░ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рдХрдВрд╕реЛрд▓ REPL (Read-eval-print-loop) рднреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдореЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛, рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдЧрд╛рдпрдм рд╣реИрдВред рдЖрдк рдореБрдЦреНрдп рдХреЗ рдмрд┐рдирд╛ рдПрдХрд▓-рдкреГрд╖реНрда рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдЪрд░ рдХреЗ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдИ рдирд┐рдпрдо рдирд╣реАрдВред рд╕реНрдереИрддрд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЖрджрд┐рдо рд╡рд╕реНрддреБрдПрдВ рднреА рд╣реИрдВ, == рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдпрджрд┐ рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдмреНрд░реИрдХреЗрдЯ рднреА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ 1 рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
str.charAt(5);
str charAt 5
рдФрд░ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдг:
val res = 1 + 1
рдирд╣реАрдВ, рдпрд╣ рд╕рд┐рд░реНрдл 1 рдкреНрд▓рд╕ 1 рдирд╣реАрдВ рд╣реИ, рдпрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ 1, + рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ 1 рдХреЛ рдХреЗрд╡рд▓ рдПрдХрдорд╛рддреНрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмреНрд░реЗрдХ рдерд╛ред
рдореЗрд░реЗ рдЭрдЯрдХреЗ рдореЗрдВ рдбреЗрд╡рд┐рдб рдкреЛрд▓рд╛рдХ - рдмрд┐рдЧрд┐рдирд┐рдВрдЧ рд╕реНрдХрд╛рд▓рд╛ рдХреА рдПрдХ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХ рдЖрдИред рдкреБрд╕реНрддрдХ рдПрдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдЕрдВрдд рддрдХ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЖрдЙрдЪ! рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ! рдореБрдЭреЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрдирд╛ рдмрдВрдж рдХрд░реЛред рдУрд╣, рд░реБрдХреЛ ... рдпрд╣ рдЕрдм рдХрдо рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдорд┐рд▓ рдЧрдпрд╛ред рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рдЕрд▓рдЧ рддрд░реАрдХреЗ рдХреЗ рдХреБрдЫ рдлрд╛рдпрджреЗ рд╣реИрдВред рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕реНрдХреВрд▓ рдХреЗ рдкрд╣рд▓реЗ рд╕рд╛рд▓ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд▓рдЧрд╛ред рдЬрдм рдореИрдВрдиреЗ рд╕реНрдХрд╛рд▓рд╛ рдХреЛ рдХреЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрд╛ред
рдбреЗрд╡рд┐рдб рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЬрдмрд░рджрд╕реНрдд рдЕрдиреБрднрд╡ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрд░реЗ рдЬрдиреНрдо рд╕реЗ 20 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдпрд╣ рд╡реНрдпрд╡рд╕рд╛рдп рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рдирд╣реАрдВ рдЖрдП, 10 рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдФрд░ рдЕрдм рд╡рд╣ рдХрд╣рддрд╛ рд╣реИ:
рд╕реНрдХрд╛рд▓рд╛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда-рдСрд▓-рд╡рд░реНрд▓реНрдб рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рдлрд┐рд░ рднреА, рд▓реЗрдЦрдХ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЙрд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ 2 рд╕рд╛рд▓ рд▓рдЧ рдЧрдП, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рдкреБрд╕реНрддрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдкрд╛рдардХ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХреБрдЫ рдЕрдиреБрднрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдпрд╣ рдкрд╕рдВрдж рдЖрдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рдХрдИ рд╕рдВрджрд░реНрдн рд╣реИрдВ рдФрд░ рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдмрд┐рдЧрд┐рдирд┐рдВрдЧ рд╕реНрдХреИрд▓рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдЯреНрд╡рд┐рдЯрд░ рдХреЗ рд╕реНрдХрд╛рд▓рд╛ рд╕реНрдХреВрд▓ рдХреЗ рдкрд╛рда рднреА рдкрдврд╝реЗ, рд╕рднреА рдкрд╛рдареЛрдВ рдХреЗ рд▓рд┐рдП рд░реВрд╕реА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрд╡рд┐рдб рдкреЛрд▓рд╛рдХ рдХреА рдкреБрд╕реНрддрдХ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд╛рдИ рдЧрдИ рдереАред
рд╕реНрдХрд╛рд▓рд╛ рдПрдХреНрд╕рд░рд╕рд╛рдЗрдЬ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ рд░реЙрдХ рдФрд░ рдХрд╛рдо рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдпрд╛рддреНрд░рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА, рдмрд╣реБрдд рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдкрд╣рд▓реВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдзреНрдпрд╛рди рд╕реЗ рд╕рдм рдХреБрдЫ рдкрдврд╝рд╛ рдФрд░ рд╕рдордЭрд╛ред
рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЬреЛ рдореБрдЭреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рд╕рдордЭрдиреА рдереАрдВред
рд╡рд┐рдХрд▓реНрдкред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдпрд╣ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╛ рддреЛ рдЦрд╛рд▓реА рд╣реИ (рдХреЛрдИ рдирд╣реАрдВ, рдпрд╣ рдЕрд╢рдХреНрдд рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдирдХреНрд╢рд╛, рдлрд╝рд┐рд▓реНрдЯрд░, ...) рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдпрд╛ рдХреБрдЫ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдореВрд▓реНрдп рд╣реИ рдХреБрдЫ (рдореВрд▓реНрдп) рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ NullPointerException рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╕реНрд╡рдЪреНрдЫ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪреЗрдХ рд▓рд┐рдЦрдирд╛ рднреВрд▓ рдЬрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдмреЗрд╢рдХ, рд╡рд┐рдХрд▓реНрдк рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдирд╣реАрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ:
рдпрджрд┐ рд╡рд┐рдХрд▓реНрдк рд░рд┐рдХреНрдд рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ
optValue.getOrElse(defaultValue)
рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ:
optValue match { case Some(value) => action case None => defaultAction }
рд╕реНрдХрд╛рд▓рд╛ рдмрд┐рдЧрдирд┐рдВрдЧ рд╕реЗ рдЙрджрд╛рд╣рд░рдгред рдкрде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
def findPerson(key: Int): Option[Person]
рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдФрд░ рдХреЛрдИ рдирд╣реАрдВ рддреЛ рд╡рд┐рдзрд┐ рдХреБрдЫ [рд╡реНрдпрдХреНрддрд┐] рдХреЛ рд▓реМрдЯрд╛ рджреЗрдЧреАред
рдЕрдм рд╣рдо рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрдпреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
def ageFromKey(key: Int): Option[Int] = findPerson(key).map(_.age)
рд╣рдореЗрдВ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдпрд╣ рд╡рд┐рдзрд┐ рдмрд╣реБрдд рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛ рдЧрдИред
рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди ред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рд╡рд╣реА рдЬрд╛рд╡рд╛ рд╕реНрд╡рд┐рдЪ рд╣реИ рдФрд░ рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИред рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИред
рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ:
obj match { case str: String => str case number: Int => number }
рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рд╢рд░реНрддреЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
obj match { case strWithA: String if strWithA.contains("a") => strWithA case negative: Int if negative < 0 => negative case zero if zero == 0 => zero case _ => defaultAction }
рдХреЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреИрдЯрд░реНрди-рдорд┐рд▓рд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рдж рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╕реНрдХрд╛рд▓рд╛ рдмрд┐рдЧрдирд┐рдВрдЧ рд╕реЗ рдЙрджрд╛рд╣рд░рдг
Stuff("David", 45) match { case Stuff("David", age) if age < 30 => "young David" case Stuff("David", _) => "old David" case _ => "Other" }
рдХрд╛рд░реНрдпреЛрдВрд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдлрдВрдХреНрд╢рдирдЯреИрдХреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХреНрд╕ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдФрд░ 1 рд╕реЗ 22 рддрдХ рдХрд╛ рдорд╛рди рд▓реЗрддрд╛ рд╣реИред рдЗрд╕ рдЯреНрд░реЗ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ aplly рд╣реИ, рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдХрд╛рд▓рд╛ рдмрд┐рдЧрдирд┐рдВрдЧ рд╕реЗ рдЙрджрд╛рд╣рд░рдгред рд╣рдо рдЗрдВрдЯ рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрдХ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ 42 рдХреЗ рд╕рд╛рде рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред
def answer(f: Function1[Int, String]) = f(42)
рдпрд╛ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ
def answer(f: Function1[Int, String]) = f.apply(42)
рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдВрдпреЛрдЬрди рд╣реИ /
рд╕рд░рдгреА рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдХрд╛рд░рд╛рддреНрдордХ рддрддреНрд╡ рдЫреЛрдбрд╝реЗрдВ:
arr.filter(value => value > 0)
рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдгред рд╕реВрдЪреА рдХреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рддрддреНрд╡реЛрдВ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдЪ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ:
list.filter(x => x > 0).foldLeft(0)(_ + f(_)) list.filter(x => x > 0).map(f).sum
рдФрд░ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд▓рд┐рдЦрд╛ред рдореИрдВ рдХрд┐рд╕реА рдХреЛ рднреА рд╕реНрдХрд╛рд▓рд╛ рдХреЛ рдкрдврд╝рд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдпрд╛ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рд╣реЗрдмреНрд░реЗ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдРрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рд╣реИрдВ, рдФрд░ рдХрдИ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдмрд╕ рдЕрдкрдиреА рдХрд╣рд╛рдиреА рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛, рдЬреЛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реА рдЦреЛрдП рд╣реБрдП рдирд╡рд╛рдЧрдВрддреБрдХ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреА рдорджрдж рдФрд░ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рднрд╛рдЧреНрдп рдиреЗ рдЗрд╕ рдЪрдЯреНрдЯрд╛рди рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВ рдЖрдкрдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ рджреЗрддрд╛ рд╣реВрдБ! рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдиреМрд╕рд┐рдЦрд┐рдП рд╕реНрдХреИрд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдорд╛рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреА рдпреБрдХреНрддрд┐рдпрд╛рдВ рдФрд░ рд░рд╛рдп рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред