рд░реВрдмреА рдХреА рднрд╛рд╡рдирд╛рддреНрдордХ рд╕рдореАрдХреНрд╖рд╛ 1.9

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



рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди



рдиреЛрдЯ: рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╢рдмреНрдж рдмреНрд▓реЙрдХ рдХрд╛ рдЕрд░реНрде рд╣реИ Proc рдФрд░ lambda рджреЛрдиреЛрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рдЗрд╕ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди рдореЗрдВ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рддреЗ рд╣реИрдВ, " =>



" рднрд╛рд╖рд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛


рдмреНрд▓реЙрдХ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛



fun = ->(a, b){ a + b }







рдХреЗ рдмрдЬрд╛рдп



fun = lambda{|a,b| a + b }







рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ "VERY EXPERIMENTAL" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╕рдмрд╕реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдм рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рджреЗ рд╕рдХрддрд╛ рд╣реИред



рдмреНрд▓реЙрдХ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛



fun.(2,5)







рджреЛ рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛:

fun.call(2,5) # 1

fun[2,5] # 2







рд╡рд┐рдзрд┐ 1 рд╕реЗ рдЫреЛрдЯреА рд╣реИ рдФрд░ 2 рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред



рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ



рдмреНрд▓реЙрдХ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдм рд╕реНрдерд╛рдиреАрдп рд╣реИрдВ (рдореЗрд░реЗ рд▓рд┐рдП, рд╢рд╛рдпрдж, рд░реВрдмрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд░реЗрдХ)ред рдЕрдм рдпрд╣ (1.8 рдХреЗ рд▓рд┐рдП рдХреЛрдб) рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ:

i = 42

10.times{|i| puts i }

i

=> 10







i



рдХрд╛ рдорд╛рди 42 рд░рд╣реЗрдЧрд╛ред рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдорддрд▓рдм 1.8 рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдирд╛рдпрд╛ рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред



рдирдП рддрд░реАрдХреЗ



with_index



Enumerator



рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА with_index



рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп Enumerator



рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рди рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рднреА рджреЗрддрд╛ рд╣реИ - рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдПрдХ рд╕рд░рдгреА рд╕реЗ рд╣рд░ рддреАрд╕рд░реЗ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ:

[1,3,4,6,5,6].select.with_index{|v,i| (i+1)%3 == 0 }

=> [4, 6]







рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдорд╛рдгрд┐рдХ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рд╣рдордд рд╣реИ, each_with_index



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



рдЯрд╛рдЗрдо рдФрд░ рдЗрдВрдЯреЗрдЧрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди



рд╕рдордп рдиреЗ рд╕рд╛рдд рдирдП рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬреЛ рд░реВрдмреА рд╢реИрд▓реА рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреМрди - рдХреМрди рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдорд╛рдгрд┐рдХ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

Time.now.sunday?

=> false

Time.now.thursday?

=> true







рдЗрд╕реА рддрд░рд╣ рд╕реЗ odd?



рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ odd?



рдФрд░ even?





1.odd?

=> true

3.even?

=> false







nil?



рд╡рд┐рдзрд┐рдпреЛрдВ рд╡рд╛рд▓реА рднрд╛рд╖рд╛ рдХрд╛ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ nil?



рдФрд░ zero?



ред



рдкреНрд░рддреАрдХ # to_proc



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдкреНрд░рддреАрдХ рдЕрдм рдЗрд╕реЗ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

["one", "two", "three"].map(&:capitalize)

=> ["One", "Two", "Three"]







рдпрд╣, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛрдб рдХреЗ рд╕рд╛рдеред



рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд╛рдгрд┐рдХ рдХреЗ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕рдореАрдХреНрд╖рд╛ рдереА, рдЬрд┐рд╕ рдкрд░ рд╕рдореАрдХреНрд╖рд╛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдЧреАред рдпрд╣ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдХрд┐ рдпрд╣ рддреЗрдЬ, рдЫреЛрдЯрд╛, рд╕реБрд░рдХреНрд╖рд┐рдд, рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред



рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдпрд╣рд╛рдВ рдЖрдк рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред



All Articles