Skip to content

Instantly share code, notes, and snippets.

View marciojrtorres's full-sized avatar
🟢
All systems operational

Marcio Torres marciojrtorres

🟢
All systems operational
View GitHub Profile
@marciojrtorres
marciojrtorres / ruby_array_length.rb
Created August 5, 2013 20:26
Na linguagem Ruby os arrays são objetos e contam a si mesmos
elementos = ["a", "b", "c"]
print elementos.length # imprime 3
@marciojrtorres
marciojrtorres / php_array_length.php
Created August 5, 2013 20:28
Na linguagem PHP a função count conta o número de elemento em um array
$elementos = array("a", "b", "c");
print count($elementos); // imprime 3
@marciojrtorres
marciojrtorres / ruby_falha_condicional.rb
Created August 5, 2013 20:35
Função que falha condicionalmente
def teste(idade)
if idade.to_i >= 18
print "maior de idade: ", idade, " anos"
else
print "menor de idade: ", idde, " anos"
end
end
print "digite um número: "
idade = gets
@marciojrtorres
marciojrtorres / csharp_tipagem_estatica.cs
Created August 5, 2013 20:36
Na linguagem C# as variáveis tem os tipos pré-definidos, uma característica da tipagem estática
// declaração da variável
int num = 32;
// ok, a variável num é do tipo inteiro e tem o valor 32
// atribuição de valor à variável:
num = 98;
// ok, a variável tem o valor 98
num = 54.23;
// erro! 54.23 não é um número inteiro, então não pode ter esse valor
@marciojrtorres
marciojrtorres / javascript_tipo_pos_definido.js
Created August 5, 2013 20:37
Na linguagem Javascript os tipos são pós-definidos
num = 32; // ok, a variável num está de tipo number e tem o valor 32
num = 98; // ok, a variável tem o valor 98 e ainda é do tipo number
document.write(typeof(num)); // imprime number
num = "texto"; // ok! agora num está de tipo string e tem o valor "texto"
document.write(typeof(num)); // imprime string
@marciojrtorres
marciojrtorres / javascript_tipagem_dinamica_armadilha.js
Created August 5, 2013 20:39
A tipagem dinâmica embora mais comoda traz algumas armadilhas
function dobro(n) {
return n * 2;
}
document.write(dobro(2)); // ok, imprime 4
document.write(dobro("t")); // opa! "t" * 2? o que será impresso?
@marciojrtorres
marciojrtorres / javascript_programacao_defensiva.js
Created August 5, 2013 20:41
Arrumando a casa com técnicas de programação defensiva
function dobro(n) {
if (typeof(n) != "number") return 0; // se n não é um número retorne 0
return n * 2;
}
document.write(dobro(2)); // ok, imprime 4
document.write(dobro("t")); // ok, "t" não é do tipo number, então imprime 0
@marciojrtorres
marciojrtorres / cpp_tipagem_estatica.cpp
Created August 5, 2013 20:46
Impondo restrições com tipagem estática, um exemplo em C++
int dobro(int n) {
return n * 2;
}
int main() {   
// ok, imprime 4
cout << dobro(2);
// esta instrução faz com o que o código não compile
cout << dobro("t");
@marciojrtorres
marciojrtorres / ruby_tipagem_segura.rb
Created August 5, 2013 20:51
Tipagem Segura na linguagem Ruby
a = 1
b = "a"
c = a + b
TypeError: String can't be coerced into Fixnum
from (irb):5:in `+'
from (irb):5
from :
@marciojrtorres
marciojrtorres / ruby_lidando_tipagem_segura.rb
Created August 5, 2013 20:53
Lidando com a Tipagem Segura em Ruby
a = 1
b = "a"
c = a + b.to_i # o método to_i converte b para inteiro ("a" vale 0)
print c # imprime 1