рд╣реИрдмрд░ рдкрд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж,
рдЯрд╛рдпрдЯреНрд╕ рдФрд░
рдЯрд╛рдпрдЯреНрд╕ рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣реЗ рдереЗ рдХрд┐
рд╕реНрдХреЗрд▓рд╛ рдореЗрдВ рдХреНрдпрд╛ рдирд┐рд╣рд┐рдд рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдЬрд╛рдирдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рддреЛ, рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рдЖрдкрдХреЛ рдХреЙрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдпрд╛ рдЪрд░ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдХрд▓рдХ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдлреНрд▓реЛрдЯ рд╕реЗ рдЗрдВрдЯ (рдлреНрд▓реЛрдЯрдЯрд╛рдЗрдВрдЯ) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирд┐рд╣рд┐рдд рдХрд░реЗрдЧрд╛:
def double(value: Int) = value * 2 implicit def FloatToInt(value: Float):Int = value.toInt println(double(2.5F))
рднреНрд░рдорд┐рдд? рдЪрд▓реЛ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред
рддреЛ, рдЖрдЬ рд╣рдо рджреЛ рдирд┐рд╣рд┐рдд рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН:
- рдирд┐рд╣рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ (рдорд╛рди)ред рд╡реЗ рд╕рдВрдХрд▓рдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдШреЛрд╖рд┐рдд рд╕рдВрдХрд▓рдХ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
- рдирд┐рд╖реНрдкреНрд░рд╛рдг рд░реВрдкрд╛рдВрддрд░рдг рдпрджрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдХрд▓рдХ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдЧреБрдВрдЬрд╛рдЗрд╢ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
рдЗрдореНрдкреНрд▓рд┐рдореЗрдВрдЯ рдкреИрд░рд╛рдореАрдЯрд░
рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреАрд╡рд░реНрдб рд╕реЗ рдкрд╣рд▓реЗ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рдорд╛рди рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдХрд▓рдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдирд┐рд╣рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рджреЛрдЧреБрдирд╛ рдХрд░рддрд╛ рд╣реИ:
def double(implicit value: Int) = value * 2
рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛:
def double(implicit value: Int) = value * 2 println(double)
рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛:
def double(implicit value: Int) = value * 2 println(double(3))
рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
def double(implicit value: Int) = value * 2 implicit val multiplier = 2 println(double)
рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
def double(implicit value: Int) = value * 2 implicit val multiplier = 2 implicit val multiplier2 = 1 println(double)
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕рд┐рдВрдЧ рдбрд┐рдл рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг:
def double(implicit value: Int) = value * 2 val cappucinoLarge: Boolean = false implicit def cappucinoPrice: Int = if (cappucinoLarge) 200 else 100 println(double)
рдпрд╛рдиреА рдЕрдВрдд рдореЗрдВ рд╣рдо рд╕рдлрд▓ рд╣реЛрдВрдЧреЗ
double(cappucinoPrice())
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдиреЛрдЯреНрд╕:
def func1(implicit value1: Int)
рдирд┐рд╖реНрдкреНрд░рд╛рдг рд░реВрдкрд╛рдВрддрд░рдг
рдлреНрд▓реЛрдЯ рд╕реЗ рдЗрдВрдЯ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓реМрдЯрдирд╛:
def double(value: Int) = value * 2 implicit def FloatToInt(value: Float):Int = value.toInt println(double(2.5F))
рдбрдмрд▓ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ (рдлреНрд▓реЛрдЯ) рдХреЗ рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ (Int) рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреЗрдореЗрд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ (рдЗрдВрдЯ) рдФрд░ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ (рдлреНрд▓реЛрдЯ) рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдлреНрд▓реЛрдЯрдЯрд╛рдЗрдВрдЯ рдвреВрдБрдврддрд╛ рд╣реИ, рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдореВрд▓реНрдп рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред
рдЕрдм, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╕реНрдХрд╛рд▓рд╛ рдХреЛ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╛рд░реА рд╕рдлрд▓рддрд╛!