Diferencias que voy encontrando entre los dos lenguajes y me llaman la atencion.
Juanjo Conti
@jjconti
File.open('proruby.jpg')
RUBY_VERSION
"2.1.2"
def que_es obj
obj ? "#{obj} es true" : "#{obj} es false"
end
que_es []
"[] es true"
que_es 1
"1 es true"
que_es false
"false es false"
s = "Cactus"
s[0] = 'KKKK'
s
"KKKKactus"
"hola".to_i
0
".5".to_f
0.5
" 1.5 - fffffff ".to_f
1.5
"..... 1.54 - fffffff ".to_f
0.0
a = []
a[4] = 1
a
[nil, nil, nil, nil, 1]
a[10]
arr = Array.new(3, {})
[{}, {}, {}]
arr[1][:a] = 1
arr
[{:a=>1}, {:a=>1}, {:a=>1}]
array = [1, 2, 3, 4, 100]
array * 2
[1, 2, 3, 4, 100, 1, 2, 3, 4, 100]
array * '|'
"1|2|3|4|100"
[1, [2,3], 4, [[[5]]]] * ','
"1,2,3,4,5"
h = {}
h[1] = "a"
h[2] = "b"
h[3] = "c"
h.delete(1)
h[1] = "A"
h.keys
[2, 3, 1]
a = []
h = {a => 2}
h.default = 'defecto'
a << 1
h
{[1]=>2}
h[a]
"defecto"
h.rehash
h[a]
2
A pesar de que son objetos mutables, al usarlos como claves, se realiza una copia de ellos y se freeza.
key = 'a'
hash = {key => 1}
{"a"=>1}
key.upcase!
"A"
hash
{"a"=>1}
key.object_id
70262201808180
hash.keys[0].object_id
70262201808140