рдХреЛрдЯрд▓рд┐рди рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐, рд╡реЙрд▓реНрдпреВрдоред 2: рдкрд╣реЗрд▓реА рдХрд╛ рдПрдХ рдирдпрд╛ рдмреИрдЪ



рдХреНрдпрд╛ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХреЛрдЯрд▓рд┐рди рдХреЛрдб рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛? рдХреНрдпрд╛ рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рдФрд░ рдХреНрдпреЛрдВ рдХрд░реЗрдЧрд╛?

рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рд╣реИ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рдлреЗрдВрдХ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕рд┐рд░ рдХреЗ рдкреАрдЫреЗ рдЦрд░реЛрдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдХреЛрдЯрд▓рд┐рди рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИ - рдЗрд╕рдореЗрдВ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрдм рдХреЛрдб рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдЯреБрдХрдбрд╝рд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

2017 рдореЗрдВ рд╡рд╛рдкрд╕, рд╣рдордиреЗ рдПрдВрдЯреЛрди рдХреЗрдХреНрд╕ рдПрдВрдЯреЛрдирдХреЗ рдХреЗ рдРрд╕реЗ рдЧреВрдврд╝ рд▓реЛрдЧреЛрдВ рдХреЗ рдЪрдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдмреЗрд░реА рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рджреВрд╕рд░реЗ рдЪрдпрди рдХреЗ рд╕рд╛рде рдореЛрдмрд┐рдпрд╕ рдкрд░ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛, рдФрд░ рд╣рдордиреЗ рдЕрдм рдЗрд╕реЗ рд╣реЗрдмрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рд╡реНрдпреВ рдореЗрдВ рднреА рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рдиреАрдЪреЗ рд╕рд╣реА рдЙрддреНрддрд░ рдЫреБрдкрд╛рддрд╛ рд╣реИред

рд╣рдо рднрд╛рд╖рдг рдХреА рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рднреА рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдкрд╛рда рдореЗрдВ рдХреБрдЫ рдЕрдпреЛрдЧреНрдп рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕рд╕реЗ рд╕рдВрдкрд░реНрдХ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдкрдЬрд╝рд▓рд░реНрд╕ рдХреА рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ рдЬреЛ рдХреЛрдЯрд▓рд┐рди рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ; рджреВрд╕рд░реА рдЫрдорд╛рд╣реА рдХрдЯреНрдЯрд░ Kotlin рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИред рд╣рдо рд╕рдм рдХреБрдЫ Kotlin 1.3 рдкрд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдореЛрдб рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рдеред рдкрдЬрд╝рдЯрд▓рд░ рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рд╣реИрдВред рдЬреЛ рднреА рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВред

рдЪрдХрд╛рдЪрдХ рд╕рдВрдЦреНрдпрд╛ рез


fun hello(): Boolean { println(print(тА│HelloтА│) == print(тА│WorldтА│) == return false) } hello() 

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╣реИрд▓реЛ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдпрд╣ рдХрдИ рдкреНрд░рд┐рдВрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИред рдФрд░ рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдУрд╡рд░рдХреНрд▓реЙрдХрд┐рдВрдЧ рдкреНрд░рд╢реНрди: рдЗрд╕реЗ рдХреНрдпрд╛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХ) рд╣реИрд▓реЛрд╡рд░реНрд▓реНрдб
b) рд╣реИрд▓реЛрд╡рд░реНрд▓реНрдбрдлрд╛рд▓реНрд╕реЗ
рдЧ) рд╣реИрд▓реЛрд╡рд░реНрд▓реНрдбрдЯреНрд░реВ
рдШ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ

рд╕рд╣реА рдЙрддреНрддрд░


рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рд╣реА рдерд╛ред рджреЛрдиреЛрдВ рдкреНрд░рд┐рдВрдЯ рдкрд╣рд▓реЗ рд╣реА рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рддреБрд▓рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдкрд╣рд▓реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреАред рдРрд╕рд╛ рдХреЛрдб рдЖрдЦрд┐рд░ рдХреНрдпреЛрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИ? рд░рд┐рдЯрд░реНрдирд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рднреА рдлрдВрдХреНрд╢рди рдХреБрдЫ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд╛рдкрд╕реА рднреА рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╛рдкрд╕реА рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд░рд┐рдЯрд░реНрди рд░рд┐рдЯрд░реНрди рдпреВрдирд┐рдЯ, рдЗрд╕рд▓рд┐рдП рдпреВрдирд┐рдЯ рдХреА рддреБрд▓рдирд╛ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреБрдЫ рднреА рдирд╣реАрдВ рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЪрдХрд╛рдЪрдХ рд╕рдВрдЦреНрдпрд╛ реи


 fun printInt(n: Int) { println(n) } printInt(-2_147_483_648.inc()) 

рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рддреЗ рд╣реИрдВ: рдПрдХ рдбрд░рд╛рд╡рдиреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рдХрдо рд╕рдВрднрд╡ 32-рдмрд┐рдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИред

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИред рдХреЛрдЯрд▓рд┐рди рдХреЗ рдкрд╛рд╕ рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП .inc () рдЬреИрд╕реЗ рдорд╣рд╛рди рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдп рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдЗрдВрдЯ рдкрд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

a) -2147483647
b) -2147483649
c) 2147483647
d) рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ

рднрд╛рдЧреЛ!


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдПрд░рд░ рдореИрд╕реЗрдЬ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдБ Long рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░ рдХреНрдпреЛрдВ?

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╣рд▓реЗ рдЗрдВрдХ (), рдФрд░ рдлрд┐рд░ рдорд╛рдЗрдирд╕ рдСрдкрд░реЗрдЯрд░ рдЪрд▓рд╛рддрд╛ рд╣реИред рдпрджрд┐ inc () рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ Int рд╣реЛрдЧрд╛, рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди inc (), рдкрд╣рд▓реЗ рд╢реБрд░реВ, 2_147_483_648 рдХреЛ Long рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рдирд╛ рдорд╛рдЗрдирд╕ рдХреЗ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдЕрдм Int рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдорд╛рдЗрдирд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдЕрдм рдкреНрд░рд┐рдВрдЯрдЖрдИрдВрдЯ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрдВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рд╣рдо PrintInt рдХреЙрд▓ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдкреНрд░рд┐рдВрдЯ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬреЛ Long рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рд╣реА рд╣реЛрдЧрд╛ред



рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдВрдмрд╛ рд╣реИред рдЗрд╕рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рд╕рднреА рдкрд╣реЗрд▓реА рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдкреАрдЬрд╝рд▓рд░ рдирдВрдмрд░ 3


 var x: UInt = 0u println(x--.toInt()) println(--x) 

рдХреЛрдЯрд▓рд┐рди рдореЗрдВ 1.3 рдирдП рд╢рд╛рдирджрд╛рд░ рдлреАрдЪрд░ рдЖрдПред рдХреЛрд░реБрдЯрд┐рди рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо
рдЕрдм рдЕрдВрдд рдореЗрдВ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред

рдЕрдм рд╢рд╛рдмреНрджрд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрдХреНрд╖рд░ u рд╣реИ, рд╣рдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо x рдХреЛ рдШрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ Int рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрдВрдЯ рд╣рдорд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

a) -1 4294967294
b) 0 4294967294
c) 0 -2
рдШ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ

4294967294 рдЕрдзрд┐рдХрддрдо 32-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рднрд╛рдЧреЛ!


рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк bред

рдпрд╣рд╛рдВ, рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣: рдкрд╣рд▓реЗ, toInt () x рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЧрд┐рд░рд╛рд╡рдЯ рдЖрддреА рд╣реИред рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╣реИред

рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛:

 println(x--.toInt()) println(--x.toInt()) 

рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдФрд░ рджреВрд╕рд░реА - рдирд╣реАрдВ, рдпрд╣ рдЕрддрд╛рд░реНрдХрд┐рдХ рд╣реИред

рдФрд░ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк C рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП JetBrains рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ рдХреАрдбрд╝реЗ рдХреЛ рдареАрдХ рдХрд░ рджреЗрдЧрд╛ред

рдЪрдХрд╛рдЪрдХ рд╕рдВрдЦреНрдпрд╛ рек


 val cells = arrayOf(arrayOf(1, 1, 1), arrayOf(0, 1, 1), arrayOf(1, 0, 1)) var neighbors = cells[0][0] + cells[0][1] + cells[0][2] + cells[1][0] + cells[1][2] + cells[2][0] + cells[2][1] + cells[2][2] print(neighbors) 

рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рднрд╛рдЧ рдЧрдПред рд╣рдо рдХреЛрдбрдмреЛрд░реНрди рдореЗрдВ рдХреЛрдбрд┐рдВрдЧ рдбреЛрдЬреЛ рдХрд░рддреЗ рдереЗ, рдЗрд╕реЗ рдХреЛрдЯрд▓рд┐рди рдЧреЗрдо рдСрдл рд▓рд╛рдЗрдл рдкрд░ рдПрдХ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдЯрд▓рд┐рди рдкрд░ рдмрд╣реБ-рд╕реНрддрд░реАрдп рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред

рдЧреЗрдо рдСрдл рд▓рд╛рдЗрдл рдореЗрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдПрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╕рднреА рдЫреЛрдЯреЗ рдкрдбрд╝реЛрд╕реА рд╣реИрдВ, рдФрд░ рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрд╢рд┐рдХрд╛ рдЬреАрд╡рд┐рдд рд░рд╣рддреА рд╣реИ рдпрд╛ рдорд░ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдХреЛрдб рдореЗрдВ, рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдЧрд┐рди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

a) рем
b) рей
рдЧ) реи
рдШ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ

рдЖрдЗрдП рджреЗрдЦрддреЗ рд╣реИрдВ


рд╕рд╣реА рдЙрддреНрддрд░ 3 рд╣реИред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕реЗ рдкреНрд▓рд╕ рдиреАрдЪреЗ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдЯрд▓рд┐рди рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдирд░реАрдкреНрд▓рд╕ () рд╣реИред рдирддреАрдЬрддрди, рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рддреАрди рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдЕрднрд┐рд╡реНрдпрдХреНрдд рд╣реЛрддреА рд╣реИрдВред рдпрджрд┐ рд╣рдо рдЗрд╕ рдХреЛрдб рдХреЛ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреНрд▓рд╕ рдЕрдк рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ "рдЦрд░рд╛рдм рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐" рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ, рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдЖрдкрдХреЛ рдмрдпрд╛рди рдХреЛ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЗрд╕реЗ рдПрдХрддрд░рдлрд╛ рдорд╛рди рд╕рдХрддрд╛ рд╣реИред



рдореИрдВрдиреЗ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдбреАрдПрд╕рдПрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рдЕрдирд░реАрдкреНрд▓рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рд╡рд┐рд╖рдп рд╣реИред

рдпрд╣ рд╡рд╣ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рд╣рдо рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рд╡реЗ рдереЗ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдЬрдм рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЙрдирдХреЗ рдмрд┐рдирд╛, рд╕рдВрдХрд▓рдХ рдХреЛ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдлреАрдб рдмрд╣реБрдд рдмрд╛рд░ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдЕрд▓рдЧ рд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рднреА рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХреЛрдб рдЕрднреА рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЪрдХрд╛рдЪрдХ рдирдВрдмрд░ 5


 val x: Int? = 2 val y: Int = 3 val sum = x?:0 + y println(sum) 

рдЗрд╕ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХреЛрдЯрд▓рд┐рдирдХреЙрдиреНрдл рд╕реНрдкреАрдХрд░ рдереЙрдорд╕ рдиреАрд▓ рдиреЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЕрд╢рдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд╢рдХреНрдд рдПрдХреНрд╕ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдПрд▓реНрд╡рд┐рд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдореВрд▓реНрдп рдкрд░ред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

a) рей
рдмреА) рел
рдЧ) реи
рдШ) реж

рднрд╛рдЧреЛ!


рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЖрджреЗрд╢ рдпрд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдлрд┐рд░ рд╕реЗ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рд╕реБрдзрд╛рд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдпрд╣ рдХрд░реЗрдЧрд╛:

 val sum = x ?: 0+y 

рдкреНрд░рд╛рд░реВрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ 0 + y рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА x ?:ред рдЗрд╕рд▓рд┐рдП, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, 2 рдмрдиреА рд╣реБрдИ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХреНрд╕ рджреЛ рд╣реИ, рдпрд╣ рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИред

рдкреАрдЬрд╝рд▓рд░ рдирдВрдмрд░ 6


 data class Recipe (var name: String? = null, var hops: List<Hops> = emptyList() ) data class Hops(var kind: String? = null, var atMinute: Int = 0, var grams: Int = 0) fun beer(build: Recipe.() -> Unit) = Recipe().apply(build) fun Recipe.hops(build: Hops.() -> Unit) { hops += Hops().apply(build) } val recipe = beer { name = тА│Simple IPAтА│ hops { name = тА│CascadeтА│ grams = 100 atMinute = 15 } } 

рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдмреБрд▓рд╛рдпрд╛, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдмреАрдпрд░ рдкреАрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ред рдореИрдВ рдЖрдЬ рд░рд╛рдд рдЙрд╕реЗ рджреЗрдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ, рдореИрдВрдиреЗ рдЙрд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред рдХреЛрдЯрд▓рд┐рди рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╡рд┐рд╖рдп рд╣реИ - рдмрд┐рд▓реНрдбрд░реЛрдВред рдХреЛрдб рдХреА рдЪрд╛рд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдЕрдкрдирд╛ рдбреАрдПрд╕рдПрд▓ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред

рд╣рдо рдкрд╣рд▓реЗ, рдЖрдИрдкреАрдП рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрдмрд╛рд▓рдиреЗ рдХреЗ 15 рд╡реЗрдВ рдорд┐рдирдЯ рдореЗрдВ рдХреИрд╕реНрдХреЗрдб рдирд╛рдордХ 100 рдЧреНрд░рд╛рдо, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдиреБрд╕реНрдЦрд╛ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛?

a) рд░реЗрд╕рд┐рдкреА (рдирд╛рдо = рд╕рд╛рдзрд╛рд░рдг IPA, рд╣реЙрдкреНрд╕ = [рд╣реЙрдкреНрд╕ (рдирд╛рдо = Cascade, atMinute = 15, gr = 100)]]
b) рдЕрд╡реИрдз рдЕрддрд┐рдХреНрд░рдордг рдЕрдкрд╡рд╛рдж
рдЧ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ
d) рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ

рднрд╛рдЧреЛ!


рд╣рдореЗрдВ рдХреНрд░рд╛рдлреНрдЯ рдмрд┐рдпрд░ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╣реЙрдкреНрд╕ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ред рд╡реЗ рдПрдХ IPA рдЪрд╛рд╣рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдмрд╛рд▓реНрдЯрд┐рдХ 7 рдорд┐рд▓рд╛ред

рдпрд╣реАрдВ рдкрд░ рдирд╛рдордХрд░рдг рдЯрдХрд░рд╛рд╡ рд╣реБрдЖред рд╣реЙрдкреНрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрдпрд╛рд▓реБ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓рд╛рдЗрди рдирд╛рдо = c рдХреИрд╕реНрдХреЗрдб тА│ рдореЗрдВ рд╣рдо рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдиреБрд╕реНрдЦрд╛ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдо рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ BeerLang рдПрдиреЛрдЯреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ BeerLang DSL рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЕрдм рд╣рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЗрд╕ рд╕рдВрджрд░реНрдн рд╕реЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, DSLMarker рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рд╣рдореЗрдВ рдмрд╛рд╣рд░реА рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рд╣реИ, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╣реА рд╣реИ рддрд╛рдХрд┐ рдХреЛрдИ рдирд╛рдордХрд░рдг рдХреНрд▓реИрд╢ рди рд╣реЛред рдХреЛрдб рдЗрд╕ рддрд░рд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЕрдкрдирд╛ рдиреБрд╕реНрдЦрд╛ рдорд┐рд▓рддрд╛ рд╣реИред



рдкрдЬреНрд▓рд░ рд╕рдВрдЦреНрдпрд╛ 7



 fun f(x: Boolean) { when (x) { x == true -> println(тА│$x TRUEтА│) x == false -> println(тА│$x FALSEтА│) } } f(true) f(false) 

рдпрд╣ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ JetBrains рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдпрд╣ рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рдХреВрд▓ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕реАрд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЪ () рд╣реИ рдЬреЛ рдПрдХ рдмреВрд▓рд┐рдпрди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕рд╣реА рдФрд░ рдЧрд▓рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдХ) рд╕рдЪреНрдЪрд╛ рд╕рдЪ; рдЭреВрдареА рдЭреВрдареА
рдЦ) рд╕рдЪ рд╕рдЪ; рдЭреВрдареА рдмрд╛рдд
рдЧ) рд╕рдЪ FALSE; рдЭреВрдареА рдЭреВрдареА
d) рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ

рдЖрдЗрдП рджреЗрдЦрддреЗ рд╣реИрдВ


рдРрд╕рд╛ рдХреНрдпреЛрдВ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХреНрд╕ == рд╕рдЪ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдЪ == рд╕рдЪ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИред рдФрд░ рдлрд┐рд░ рдЙрд╕ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рднреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдХрдм рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред

рдФрд░ рдЬрдм x рдХреЛ рдЕрд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ x == рд╕рддреНрдп рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдЕрд╕рддреНрдп рдорд┐рд▓реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирдореВрдирд╛ рднреА рдЧрд▓рдд рд╣реЛрдЧрд╛ - рдЗрд╕рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдирдореВрдиреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред

рдЗрд╕ рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ, рдПрдХ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ "x ==" рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИ:

 fun f(x: Boolean) { when (x) { true -> println(тА│$x TRUEтА│) false -> println(тА│$x FALSEтА│) } } f(true) f(false) 

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ (x) рдХрдм рдХреЗ рдмрд╛рдж рд╣рдЯрд╛ рджреЗрдВред рдЬрдм рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдПрдЧрд╛ред

 fun f(x: Boolean) { when { x == true -> println(тА│$x TRUEтА│) x == false -> println(тА│$x FALSEтА│) } } f(true) f(false) 


рдкрд╛рдЬрд▓рд░ рд╕рдВрдЦреНрдпрд╛ 8


 abstract class NullSafeLang { abstract val name: String val logo = name[0].toUpperCase() } class Kotlin : NullSafeLang() { override val name = тА│KotlinтА│ } print(Kotlin().logo) 

рдХреЛрдЯрд▓рд┐рди рдХреЛ "рдЕрд╢рдХреНрдд рд╕реБрд░рдХреНрд╖рд┐рдд" рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдкрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ рд╣реИ, рдЗрд╕рдХрд╛ рдХреБрдЫ рдирд╛рдо рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХ рд╕рдВрдкрддреНрддрд┐ рднреА рд╣реИ рдЬреЛ рдЗрд╕ рднрд╛рд╖рд╛ рдХрд╛ рд▓реЛрдЧреЛ рд▓реМрдЯрд╛рддреА рд╣реИ: рдирд╛рдо рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреВрдВрдЬреАрдХреГрдд (рдЕрдЪрд╛рдирдХ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреВрдВрдЬреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдЧрдпрд╛ рдерд╛)ред

рдЪреВрдВрдХрд┐ рднрд╛рд╖рд╛ рд╢реВрдиреНрдп рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рд╣рдо рдирд╛рдо рдмрджрд▓ рджреЗрдВрдЧреЗ рдФрд░ рд╢рд╛рдпрдж рд╕рд╣реА рд▓реЛрдЧреЛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдПрдХ рдЕрдХреНрд╖рд░ рд╣реИред рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ?

a) рдХреЗ
рдмреА) NullPointerException
рдЧ) рдЕрд╡реИрдз
рдШ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ

рднрд╛рдЧреЛ!


рд╣рдореЗрдВ NullPointerException рдорд┐рд▓реА, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдб рд╕рдВрдкрддреНрддрд┐ рд▓реЛрдЧреЛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╢реВрдиреНрдп рд╕реЗ рдирд╛рдо рдЪрд╛рд░ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдирд╛рдо рд╢реВрдиреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ NullPointerException рд╣реЛрддреА рд╣реИред

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ:

 class Kotlin : NullSafeLang() { override val name get() = тА│KotlinтА│ } 

рдпрджрд┐ рд╣рдо рдРрд╕рд╛ рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ "K" рдорд┐рд▓рддрд╛ рд╣реИред рдЕрдм рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреЗрдЯрд░ рдирд╛рдо рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рдХреЛрдЯрд▓рд┐рди рдорд┐рд▓реЗрдЧрд╛ред

рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдорд╣рд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рднреВрд▓ рдХрд░рдирд╛, рдЧрд▓рддреА рдХрд░рдирд╛ рдпрд╛ рдЧрд▓рдд рдмрд╛рдд рдХрд╛ рдЖрд╢реНрд╡рд╛рд╕рди рджреЗрдирд╛ред


рдкреАрдЬрд╝рд▓рд░ рдирдВрдмрд░ 9


 val result = mutableListOf<() -> Unit>() var i = 0 for (j in 1..3) { i++ result += { print(тА│$i, $j; тА│) } } result.forEach { it() } 

рдХреБрдЫ рдбрд░рд╛рд╡рдиреА рдмрд╛рддреЛрдВ рдХрд╛ рдПрдХ рдкрд░рд╕реНрдкрд░ рдЕрдиреБрд╡рд╛рдж рд╣реИред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╕реНрдХрд╛рд▓рд╛ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡реНрдпрд░реНрде рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдПрдХ рд╕реВрдЪреА рдореЗрдордирд╛ рд╣реИ, рд╣рдо рджреЛ рдХрд╛рдЙрдВрдЯрд░ рд▓реЗрддреЗ рд╣реИрдВ - I рдФрд░ j, рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдП) 1 1; 2 2; рей рей
рдмреА) 1 3; 2 3; рей рей
рдЧ) 3 1; 3 2; рей рей
d) рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ

рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ


рд╣рдореЗрдВ 3 1 рдорд┐рд▓рддрд╛ рд╣реИ; 3 2; 3 3. рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдЪрд░ рд╣реИ, рдФрд░ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рддрдХ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛ред рдФрд░ j рдХреЛ рдорд╛рди рд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдЧрд░ var i = 0 рдХреЗ рдмрдЬрд╛рдп val i = 0 рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рддрдм рд╣рдо рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╕рдХрддреЗ рдереЗред

рдпрд╣рд╛рдВ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╣рдо рдХреНрд▓реЛрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрдВ рдХрд╛рдЯ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╣рдо рддреБрд░рдВрдд i рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рдВрдмрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЪрд░ рдХреЗ рдЕрдВрддрд┐рдо рдореВрд▓реНрдп рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рдФрд░ j рдХреЛ рдорд╛рди рд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реВрдк рдХрдВрдбреАрд╢рди рдореЗрдВ рд╡реИрд░рд┐рдПрдмрд▓ - рд╡реЗ рд╡реИрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд╡реЗ рдЕрдм рдЕрдкрдирд╛ рдорд╛рди рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЙрддреНрддрд░ тАЬ3 3тАЭ рд╣реЛрдЧрд╛; 3 3; 3 3 тАЭ, рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓реНрдп рд╕реЗ рдХреБрдЫ рднреА рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред


рдкрдЬреНрд▓рд░ рд╕рдВрдЦреНрдпрд╛ резреж


 fun foo(a:Boolean, b: Boolean) = print(тА│$a, $bтА│) val a = 1 val b = 2 val c = 3 val d = 4 foo(c < a, b > d) 

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдлреВ рд╣реИ (), рджреЛ рдмреВрд▓рд┐рдпрди рд▓реЗрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдЖрдВрдХрдбрд╝рд╛ рджреВрд╕рд░реЗ рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ, рдФрд░ рдпрд╣ рддрдп рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рд╣реА рд╣реИред

a) рд╕рддреНрдп, рд╕рддреНрдп
рдЦ) рдЭреВрдард╛, рдЭреВрдард╛
рдЧ) рдЕрд╢рдХреНрдд, рдЕрд╢рдХреНрдд
рдШ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ


рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИ: <a, b> рдХреЗ рд╕рд╛рдеред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рд╕реА" рдПрдХ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХреНрдпреЛрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рдерд╛, рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛:

 foo(c > a, b > d) 

рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдХрд▓рдХ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЖрдВрджреНрд░реЗрдИ рдмреНрд░реЗрд╕реНрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд┐рд╕реА рднреА рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рд╡рд╣ рдХрд╣рддрд╛ рд╣реИ "рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рд░реНрд╕рд░ рдРрд╕рд╛ рд╣реИ, рд╡реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реЛред" рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдкрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдРрд╕рд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рд╣реИ
рдХреЛрдЯрд▓рд┐рди рдЕрднреА рддрдХ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╢рд╛рдпрдж рдРрд╕рд╛ рд╣реА рд░рд╣реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рджреЛ рдХреЛрд╖реНрдардХ рдФрд░ рдмреАрдЪ рдореЗрдВ рдХреЛрдИ рднреА рдХреЛрдб рди рд▓рд┐рдЦреЗрдВ!

рдЪрдХрд╛рдЪрдХ рдирдВрдмрд░ 11


 data class Container(val name: String, private val items: List<Int>) : List<Int> by items val (name, items) = Container(тА│KotlinтА│, listOf(1, 2, 3)) println(тА│Hello $name, $itemsтА│) 

рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдбреЗрд▓реАрдЧреЗрдЯ рдПрдХ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдЖрдВрджреНрд░реЗрдИ рдмреНрд░реЗрдЬрд╝рд▓рд╡ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдЦрд╝реБрд╢реА рд╕реЗ рднрд╛рд╖рд╛ рд╕реЗ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЙрд╕реЗ рдЕрдм рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдЕрдм, рд╢рд╛рдпрдж, рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреНрдпреЛрдВ! рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдпрд╣ рднреА рдХрд╣рд╛ рдХрд┐ рд╕рд╛рдереА рд╡рд╕реНрддреБрдПрдВ рдмрджрд╕реВрд░рдд рд╣реИрдВред

рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрдВрджрд░ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рдХрдВрдЯреЗрдирд░ рд╣реИ, рдпрд╣ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдФрд░ рдЖрдЗрдЯрдо рд▓реЗрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдХрдВрдЯреЗрдирд░ рдореЗрдВ, рд╣рдо рдЖрдЗрдЯрдо рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реВрдЪреА рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рдЖрдЗрдЯрдо рдореЗрдВ рд╕реМрдВрдкрддреЗ рд╣реИрдВред

рдлрд┐рд░ рд╣рдо рдПрдХ рдФрд░ рд╢рд╛рдВрдд рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рд╡рд┐рдирд╛рд╢ред рд╣рдо рдХрдВрдЯреЗрдирд░ рд╕реЗ рдирд╛рдо рдФрд░ рдЖрдЗрдЯрдо рддрддреНрд╡реЛрдВ рдХреЛ "рдирд╖реНрдЯ" рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдХ) рд╣реИрд▓реЛ рдХреЛрдЯрд▓рд┐рди, [1, 2, 3]
рдмреА) рд╣реИрд▓реЛ рдХреЛрдЯрд▓рд┐рди, 1
c) рд╣реИрд▓реЛ 1, 2
рдШ) рд╣реИрд▓реЛ рдХреЛрдЯрд▓реАрди, реи

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ


рд╕рдмрд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдбреА рд╣реИред рд╡рд╣ рд╕рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЖрдЗрдЯрдо рдХреЗрд╡рд▓ рдЖрдЗрдЯрдо рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╢реБрд░реБрдЖрдд рд╕реЗ рдпрд╛ рдЕрдВрдд рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдмреАрдЪ рдореЗрдВред рдХреНрдпреЛрдВ?

рд╡рд┐рдирд╛рд╢ рдХреА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХреЗ рдХрд╛рд░рдг, рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╕рднреА рд╕рдВрдЧреНрд░рд╣ рднреА рд╣реИрдВ
рд╡рд┐рдирд╛рд╢ рдХрд╛ рдЕрдкрдирд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореИрдВ рд╡реИрд▓ (I, j) = listOf (1, 2) рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдЗрди 1 рдФрд░ 2 рдХреЛ рдЪрд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЕрд░реНрдерд╛рдд, рд▓рд┐рд╕реНрдЯ рдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХрдВрдкреЛрдиреЗрдВрдЯ 1 () рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред
рдШрдЯрдХ 2 ()ред

рдбреЗрдЯрд╛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рднреА рдХрдВрдкреЛрдиреЗрдВрдЯ 1 () рдФрд░ рдХрдВрдкреЛрдиреЗрдВрдЯ 2 () рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджреВрд╕рд░рд╛ рдШрдЯрдХ рдирд┐рдЬреА рд╣реИ, рд▓рд┐рд╕реНрдЯ рдЬреАрдд рдореЗрдВ рдЬреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░рд╛ рддрддреНрд╡ рд▓рд┐рд╕реНрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдо рдпрд╣рд╛рдВ рдорд┐рд▓рддреЗ рд╣реИрдВред рдиреИрддрд┐рдХ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдРрд╕рд╛ рдордд рдХрд░реЛ, рдРрд╕рд╛ рдордд рдХрд░реЛред

Pazzler рд╕рдВрдЦреНрдпрд╛ 12


рдЕрдЧрд▓рд╛ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рдмрд╣реБрдд рдбрд░рд╛рд╡рдирд╛ рд╣реИред рдпрд╣ рдПрдХ рд╡рд┐рдирдореНрд░ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рдХреЛрдЯрд▓рд┐рди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рд╣реИред

 fun <T> Any?.asGeneric() = this as? T 42.asGeneric<Nothing>()!!!! val a = if (true) 87 println(a) 

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ nullable Any рдкрд░ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдп рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЬреЛрдбрд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреА рд╣рд░ рдЪреАрдЬ рдХреЛ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо 42 рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред

рдЦреИрд░, рдЕрдЧрд░ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ !!! рд▓рд┐рдЦреЛ !!!!, рдХреЛрдЯрд▓рд┐рди рд╕рдВрдХрд▓рдХ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рджреЛ рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдмрд┐рдВрджреБ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдЫрдмреНрдмреАрд╕ рд▓рд┐рдЦреЗрдВред

рддрдм рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рдЕрдЧрд░ (рд╕рдЪ), рдФрд░ рдлрд┐рд░ рдореИрдВ рдЦреБрдж рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕рдордЭрддрд╛ ... рдЪрд▓реЛ рдЬреЛ рд╣реЛрддрд╛ рд╣реИ рдЙрд╕реЗ рддреБрд░рдВрдд рдЪреБрдиреЗрдВред

a) 87
рдмреА) рдХреЛрдЯрд▓рд┐рди
c) рдХреНрд▓рд╛рд╕рдХреИрд╕реНрдЯ рдПрдХреНрд╕рд╕реЗрдкреНрд╢рди
рдШ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ

рдирдЬрд╝рд░


рддрд╛рд░реНрдХрд┐рдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рджреЗрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣рд╛рдВ рдпреВрдирд┐рдЯ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдзрдХреНрдХрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдорд╛рдиреНрдп рдХреЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдХреБрдЫ рднреА рдХреБрдЫ рднреА рдирд╣реАрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рд╕рдВрдХрд▓рдХ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрднреА рднреА рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдХрд▓рдХ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рдирд╣реАрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИ, рддреЛ рдЖрдк рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдпрд╣ рдПрдХ рдЕрд╕рдВрднрд╡ рд╕реНрдерд┐рддрд┐ рд╣реИред

рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рд╕рдВрдХрд▓рдХ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ, JetBrains рдЯреАрдо рдиреЗ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд╣рд╛ рдХрд┐ рд╢рд╛рдпрдж рдпрд╣ рдмрдЧ рдХрд┐рд╕реА рджрд┐рди рддрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рдмрд╣реБрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЯреНрд░рд┐рдХ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рдХрд╛рд╕реНрдЯ рдХреЗ рдХрд╛рд░рдг рдпрд╣рд╛рдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдзреЛрдЦрд╛ рджрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ 42.asGeneric <Nothing> () !!! рдФрд░ рдзреЛрдЦрд╛ рдмрдВрдж рдХрд░реЛ, рдХреЛрдб рд╕рдВрдХрд▓рди рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЕрдЧрд░ рд╣рдо рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рдХ рдкрд╛рдЧрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд╕рдВрднрд╡ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдЬреЛ рдХреБрдЫ рднреА рдорд┐рд▓рддрд╛ рд╣реИ рдЙрд╕реЗ рд╕рд╛рдорд╛рдиред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджрд┐рди рдХреЛрдИ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛рдПрдЧрд╛ред


Pazzler рд╕рдВрдЦреНрдпрд╛ 13


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЖрдк рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рдВрдЧрд▓рд▓реЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдардВрдбрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХреЛрдЗрди, рдбреИрдЧрд░ рдпрд╛ рдХреБрдЫ рдФрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдкрд░реАрдХреНрд╖рдг, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред

 open class A(val x: Any?) { override fun toString() = javaClass.simpleName } object B : A(C) object C : A(B) println(Bx) println(Cx) 

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рд╡рд░реНрдЧ рд╣реИ, рдпрд╣ рдЕрдкрдиреЗ рдЕрдВрджрд░ рдХреБрдЫ рд▓реЗрддрд╛ рд╣реИ, рд╣рдо рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ'рдП, рд╕рд┐рдВрдЧрд▓рдЯрди, рдмреА рдФрд░ рд╕реА рдмрдирд╛рддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдХреЛ рдП рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЪрдХреНрд░ рдмрдирддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдмреА рдФрд░ рд╕реА рдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рд╛ред

рдХ) рдЕрд╢рдХреНрдд; рдЕрд╢рдХреНрдд
рдмреА) рд╕реА; рдЕрд╢рдХреНрдд
c) рдПрдХреНрд╕рд╕реЗрдкреНрд╢рдирдЗрдиреНрд╕реЗрдиреНрдЯрд▓рд╛рдЗрдЬрд╝рд░рд░реВрдЯ
рдШ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ


рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк C рд╣реИ; рдЕрд╢рдХреНрддред

рдХреЛрдИ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдкрд╣рд▓реА рд╡рд╕реНрддреБ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░рд╛ рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЬрдм рд╣рдо рдЗрд╕реЗ рдХрд╛рдЯрддреЗ рд╣реИрдВ, рддреЛ C рдореЗрдВ B рдХреА рдХрдореА рд╣реЛрддреА рд╣реИред рдЕрд░реНрдерд╛рдд, рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ: рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ C рдХреЛ рдкрд╣рд▓реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЙрд╕рдиреЗ C рдХреЗ рд╕рд╛рде B рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ред рдпрд╣ рдЕрддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рддрд╛рд░реНрдХрд┐рдХ рд╣реЛрдЧрд╛ред ; рдмреА

рд▓реЗрдХрд┐рди рд╕рдВрдХрд▓рдХ рдиреЗ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖ, рдЙрд╕рдиреЗ рд╡рд╣рд╛рдВ рд╕реЗ рд╢реВрдиреНрдп рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдФрд░ рд╣рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдлреЗрдВрдХрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХрд╛рд░ рдореЗрдВ, рдирд┐рдХрд╛рд▓реЗрдВ ?, рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред



рд╣рдо рд╕рдВрдХрд▓рдХ рдХреЛ рдЕрдЪреНрдЫрд╛ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдЕрд╢рдХреНрдд рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЙрд╕рдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдХреНрдпрд╛? рдирд╣реАрдВ, рд╡рд╣ рд╣рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЪрдХреНрд░ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

Pazzler azz14


рд╕рдВрд╕реНрдХрд░рдг 1.3 рдиреЗ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдорд╣рд╛рди рдирдП рдХреЛрд░рдЯрд╛рдЗрдиреНрд╕ рдЬрд╛рд░реА рдХрд┐рдПред рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдХреЛрд░реБрдЯрд┐рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рд╕рдордЭ рд╕рдХреЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрд░рдЯрд╛рдЗрди рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдХреЛрдб рдПрдХ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рд╣реИред

1.3 рдореЗрдВ, рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдмрджрд▓ рдЧрдП рдЬреЛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдПрдкреАрдЖрдИ рдореЗрдВ 1.2 рдореЗрдВ рдереЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, buildSequence () рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдо () рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдо рдЙрдкрдЬ рд╕рдорд╛рд░реЛрд╣, рдЕрдирдВрдд рдЫреЛрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЙрддреНрдХреГрд╖реНрдЯ рдЕрдиреБрдХреНрд░рдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕ рдХреНрд░рдо рд╕реЗ рдХреБрдЫ рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 package coroutines.yieldNoOne val x = sequence { var n = 0 while (true) yield(n++) } println(x.take(3)) 

рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреЙрд░рдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдХрд┐ рд╕рднреА рд╢рд╛рдВрдд рдЖрджрд┐рдо рдЬреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдЙрдкрдЬ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдЬ рдПрдХ рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕реЗ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

a) [1, 2, 3]
рдмреА) [реж, рез, реи]
рдЧ) рдЕрдирдВрдд рд▓реВрдк
d) рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ

рднрд╛рдЧреЛ!


рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рдЕрдВрддрд┐рдо рд╣реИред

рдЕрдиреБрдХреНрд░рдо рдПрдХ рдЖрд▓рд╕реА рдЧрд░реНрднрдирд┐рд░реЛрдзрдХ рд╣реИ, рдФрд░ рдЬрдм рд╣рдо рдЗрд╕реЗ рдЬрдХрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрд▓рд╕реА рднреА рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд▓реЛрд▓рд┐рд╕реНрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рд╣реЛрдЧрд╛ [0, 1, 2]ред

рд╕рд╣реА рдЙрддреНрддрд░ рдХрд╛ рд╕рдВрдмрдВрдз рдХреЛрдСрдЙрдЯрд┐рди рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИред Coroutines рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВред рдЕрдиреБрдХреНрд░рдо рдФрд░ рдЙрдкрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдХреЛрд░рдЯрд╛рдЗрди рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╣реИред

Pazzler azz15


рдЗрд╕ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рдХреЛ JetBrains рдХреЗ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рднреА рд╡рд╢ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдПрдХ рдирд╛рд░рдХреАрдп рдХреЛрдб рд╣реИ:

 val whatAmI = {->}.fun Function<*>.(){}() println(whatAmI) 

рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЙрд╕реЗ рджреЗрдЦрд╛, рдХреЛрдЯрд▓рд┐рдирдХреЙрдиреНрдлрд╝ рдХреЗ рджреМрд░рд╛рди, рдореИрдВ рд╕реЛ рдирд╣реАрдВ рд╕рдХрд╛, рдореИрдВрдиреЗ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдерд╛ред рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреВрдврд╝ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХрд▓рд╛рдЬрд╝ рдбрд░рд╛рд╡рдирд╛ рдерд╛, рддреЛ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рднреА рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

рдЖрдЗрдП рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ:

a) рдХреЛрдЯрд▓рд┐рди.рдЙрдкрдпреЛрдЧ
рдмреА) рдХреЛрдЯрд▓рд┐рди
рдЧ) рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ
d) рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ

рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВ


рд╣рдореЗрдВ рдПрдХ рдпреВрдирд┐рдЯ рдорд┐рд▓реА рдЬреЛ рдХрд╣реАрдВ рд╕реЗ рдирд╣реАрдВ рдЖрдИред

рдХреНрдпреЛрдВ? рдкрд╣рд▓реЗ рд╣рдо рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдПрдХ рд▓реИрдореНрдмреНрдбрд╛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ: {->} - рдпрд╣ рд╡реИрдз рдХреЛрдб рд╣реИ, рдЖрдк рдПрдХ рдЦрд╛рд▓реА рд▓реИрдореНрдмрдбрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рдпреВрдирд┐рдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рд╣рдо рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реИрдореНрдмреНрдбрд╛ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд рдЗрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреЛрдЯрд▓рд┐рди рдХреЛ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдЧрд╛ред

рдлрд┐рд░ рдЗрд╕ рдореЗрдордиреЗ рдкрд░ рдЖрдк рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 .fun Function<*>.(){} 

рдпрд╣ рдлрдВрдХреНрд╢рди <*> рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реАрд░реНрд╖ рдкрд░ рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдлрдВрдХреНрд╢рди <рдпреВрдирд┐рдЯ> рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпреВрдирд┐рдЯ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? , Java. , .

, Unit {}, , void-. , , . -, тАФ .

. , Kotlin тАФ . iOS- , , Kotlin !
Mobius, : Mobius 22-23 . Kotlin тАФ ┬лCoroutining Android Apps┬╗ . ( Android, iOS), тАФ , 1 .

: , тАФ 6 .

Source: https://habr.com/ru/post/hi440974/


All Articles