:: Topo :: doCoding :: Linguagens de Programação :: Ruby :: FORPC101 ::
Week-11
Aprendizagem
Expressões Regulares
As expressões regulares são excelentes para pattern-matching e para processamento de texto. Uma expressão regular corresponde a uma forma simples de especificar um padrão a ser reconhecido numa sequência de caracteres.
Em Ruby, as expressões regulares são:
- instâncias de class Regexp.
- construídas normalmente com slashs: /pattern/.
A classe Regexp disponibiliza os métodos:
- match() - para verificar se o padrão é encontrada na sequência de caracteres - string. O resultado ou é nil ou é uma instância de classe MatchData.
- =~ - semelhante ao método match() mas que retorna a posição inicial na string onde começa o padrão, quando é encontrado.
A construção do padrão tem como caracteres especiais os seguiintes - que precisam de ser escaped com uma back-slash (\): ^, $, ? , ., /, \, [, ], {, }, (, ), +, *
Mais informações em Using Regular Expressions with Ruby.
Threads
Em Ruby uma thread é uma sequência de instruções em Ruby que executam - ou aparentam executar - em paralelo com a sequência de instruções principal do programa. As threads são implementadas dentro do interpretador Ruby - green threads - o que lhes permitem ser portáveis para diferentes sistemas operativos. No entanto, não se colhe os benefícios de native threads, pelo que pode ocorrer thread starvation - quando uma thread the baixa prioridade nunca consegue executar. Além disso, não tira partido de múltiplos processadores num só sistema.
Sockets
A classe BasicSocket, da qual derivam as restantes, deriva ela própria da classe IO.
As classes Socket existem na Standard Library Socket, devendo por isso ser incluída com:
require 'socket'
Os portos são agrupados em intervalos:
- Well Known Ports - 0..1023
- Registered Ports - 1024..49151
- Dynamic and/or Private Ports - 49152..65535.
Exercícios
Esta semana não há exercícios.
Questionário
Referências
Considerações
Pontos Altos
Esta secção regista o que considero serem os pontos altos da linguagem Ruby quando comparada com outras linguagens que conheço.
- as threads são portáveis, e muito simples de usar.
- é muito fácil programar sockets com base na Standard Library Socket.
- Ruby une o poder e flexibilidade das expressões regulares com a simplicidade em as usar.
Pontos Baixos
Esta secção regista o que considero serem os pontos baixos da linguagem Ruby quando comparada com outras linguagens que conheço.
- as threads não são nativas, pelo que não tiram partido de múltiplos processadores e permitem a ocorrência de thread starvation.