click below
click below
Normal Size Small Size show me how
Scala
Métodos Genéricos, Tuplas e Funções como Objetos.
Term | Definition |
---|---|
Tipos Genéricos | São tipos que vão assumir o tipo de dados que será passado durante a utilização do código. |
Métodos Genéricos | São métodos que irão utilizar um tipo que será informado durante a chamada do método. |
Conceito de Genérico | Genérico, em programação, é o conceito utilizado para definir algo que pode utilizar mais de um tipo(int, bool, ou até mesmo uma classe). |
Utilização de Métodos Genéticos | O método Set[T]. T é um tipo genérico, que representa qualquer outro tipo já existente ou criado. Sua utilização seria, ao chamar o método, definir seu tipo: Set[int] ou Set[String], etc. |
Tipos e Subtipos | Subtipos são tipos que derivam de um tipo, ou seja, são tipos que representam um determinado grupo de tipos. |
Tuplas | Uma tupla é uma estrutura de dados que implementa e utiliza um ou mais tipos. |
Diferença entre Tupla e Listas | A principal diferença entre tuplas e listas é que as tuplas podem utilizar mais de um tipo, enquanto as listas utilizam um só. |
Utilidade das tuplas | Tuplas podem ser úteis quando se tem, por exemplo, a necessidade de um método retornar mais de um tipo. |
Instanciando uma tupla: val pair = (99, "Luftballons") println(pair._1) println(pair._2) | Nessa instanciação, é criada uma tupla com dois tipos: um valor inteiro de valor 99 e uma string de valor "Luftballons" |
Não se pode acessar os elementos de um tupla. | Isso acontece porque diferente de uma lista, onde os métodos de retorno irão sempre retornar o mesmo tipo, em uma tupla os métodos de retorno não podem retornar tipos diferentes, inviabilizando o acesso aos elementos de uma tupla. |
Vantagens | O uso de tuplas facilita ao programador a utilização de uma estrutura com diferentes tipos, fazendo uso de tipagem anônima, onde o s nomes dos elementos de uma estrutura não precisam ser necessariamente definidos. |
Funções como parametros | O uso de funções como objetos pode ser definido como a passagem de uma série comandos ainda não executados como parâmetro para um método. |
scala> val someNumbers = List(-11, -10, -5, 0, 5, 10) someNumbers: List[Int] = List(-11, -10, -5, 0, 5, 10) scala> someNumbers.foreach((x: Int) => println(x)) | Nesse exemplo, é executado o metodo foreach para cada elemento da lista. e é também passada um comando(println) que será execcutado para CADA elemento da lista. |
Uso de funções como objetos como filtros | Pode-se utilizar as funções passadas por parâmetros para se filtrar os elementos de uma lista, mapeando em true e false os elementos de uma lista de acordo com uma condição. |
Function Value | é uma função que pode ser chamada como qualquer outra, mas que é também chamada quando se chama o método que a aplicou. |
Function Closure | É uma função que é invisível para variáveis que eram visíveis no momento em que a função foi criada. |
Funções como objetos | São funções que podem ser tratadas como objetos, sendo passadas como parâmetros e retornadas como objetos entre métodos. |
Parametrização de tipos | é o tipo que será utilizado num parâmetro de um método ou classe genérica, e irá assumir o tipo que lhe for atribuído na chamada de tal classe ou método. |
O tipo de uma tupla depende do numero de elementos que ela irá conter e seus respectivos tipos | O tipo da tupla (99, "Luftballons") é Tuple2[Int, String] |
rConcatenação de Métodos | Como os métodos podem ser tratados como objetos, é possível, concatenar métodos usando o operador += O uso desse operador faz com que uma função seja atribuída no final de outra, ou seja, no final de uma função, a outra que foi adicionada será executada |