Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
a = Array.new(3) # [nil, nil, nil] — массив пустой, значит все элементы равны nil.a = nil
puts "nil!" unless a # напечатает nil!puts "nil!" if a.nil? # опять напечатает nil!a ||= "sting"#присвоит переменной a значение "string" только если a=nil или a=false
a &&= "sting"#наоборот, присвоит только если a!=nil и a!=false
mholub|mholub irb 21:25
irb(main):001:0> a = [1, 2, 3]
=> [1, 2, 3]
irb(main):002:0> a.map { |x| 2 * x }
=> [2, 4, 6]
irb(main):003:0> a
=> [1, 2, 3]
irb(main):004:0> a.map! {|x| 2 * x }
=> [2, 4, 6]
irb(main):005:0> a
=> [2, 4, 6]
[1, 2, 3].inject(0) { |sum, x| sum + x } #сумма всех элементов массива(1..10).inject { |fac, n| fac * n } #факториал от положительного n
[1, -3, 4, 5, -16, 23].inject { |min, el| min > el ? el : min } #минимальный элемент в массивеa = [1,2]
a*2# [1,2,1,2]
== и <=> работают и для массивов.%w{1 2 3 4} — это массив строк, а не чисел."string"[1..2] #=> "tr"
"string"[4..-1] #=> "ng"
"string"[-2..-1] #=> "ng"
"string"[0]#=>115"string"[0..0]#=>"s""string".split('')#=> ["s", "t", "r", "i", "n", "g"]
irb(main):001:0> a = [] => [] irb(main):002:0> a[10] = 1 => 1 irb(main):003:0> a => [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1] irb(main):004:0> a.length => 11
obj = {
:a => 10,
:b =>
}id = 1
obj = {
:id => [1, 2, 3, 4]
}
puts obj[id]
a = {:a => 10, 'b' => 20} # индекс-символ и индекс-строка
a[1] = 30 # числовой индекс
b = [1, 2, 3]
a[b] = 40 # индекс-массив
c = {:b => 1}
a[c] = 50 # индекс-хеш
a # {"b"=>20, [1, 2, 3]=>40, 1=>30, :a=>10, {:b=>1}=>50}a[:a], a['b'], a[1], a[b], a[c]
a[b] # 40 b[0] = 2 a[b] # nil
a = [1, 2, 3, 4, 5, 6]
b = a
a[0] = 'one'
puts b[0]
Покорим Ruby вместе! Капля пятая