Skip to content

Commit 6fec4cc

Browse files
committed
Tutorials - Translation PT-BR - Polymorphic Methods
1 parent 563a478 commit 6fec4cc

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
layout: tutorial
3+
title: Métodos Polimórficos
4+
5+
disqus: true
6+
7+
tutorial: scala-tour
8+
num: 27
9+
10+
tutorial-next: local-type-inference
11+
tutorial-previous: implicit-conversions
12+
language: pt-br
13+
---
14+
15+
Os métodos em Scala podem ser parametrizados com valores e tipos. Como no nível de classe, os parâmetros de valor são declarados entre de parênteses, enquanto os parâmetros de tipo são declarados entre colchetes.
16+
17+
Por exemplo:
18+
19+
```tut
20+
def dup[T](x: T, n: Int): List[T] = {
21+
if (n == 0)
22+
Nil
23+
else
24+
x :: dup(x, n - 1)
25+
}
26+
27+
println(dup[Int](3, 4)) // primeira chamada
28+
println(dup("three", 3)) // segunda chamada
29+
```
30+
31+
O método `dup` é parametrizado com o tipo `T` e com os parâmetros de valor `x: T` e `n: Int`. Na primeira chamada de `dup`, o programador fornece os parâmetros necessários, mas como mostra a seguinte linha, o programador não é obrigado a fornecer explicitamente os parâmetros de tipos. O sistema de tipos de Scala pode inferir tais tipos sem problemas. Isso é feito observando-se os tipos dos parâmetros de valor fornecidos ao método e qual o contexto que o mesmo é chamado.

0 commit comments

Comments
 (0)