配列
次は配列の演算。
puts '配列の演算' puts '+演算' p [1, 2] + [6, 7, 8] # p [1, 2] + nil # test_array.rb:42:in `+': cannot convert nil into Array (TypeError) puts '*演算' p [1, 2, 3] * 4 # p [1, 2, 3] * nil # test_array.rb:45:in `*': no implicit conversion from nil to integer (TypeError) # p [1, 2, 3] * [6,7,8] # test_array.rb:46:in `*': cannot convert Array into Integer (TypeError) p [1, 2, 3] * 0 p [1, 2, 3] * 'a' # これは実行できちゃう # p 5 * [1, 2, 3]; # test_array.rb:44:in `*': Array can't be coerced into Fixnum (TypeError) # p 'b' * [1, 2, 3]; # test_array.rb:44:in `*': cannot convert Array into Integer (TypeError) puts '-演算' p [1,2,3,4,5] - [2,3] p [1,2,3,4,5] - [2,3,6] p [1,2,3,4,5,2,3] - [2,3] p ['a', 'b', 'c', 'd', 'e', 'f'] - ['c', 'd'] p ['a', 'b', 'c', 'd', 'e', 'f'] - [] #p ['a', 'b', 'c', 'd', 'e', 'f'] - nil #test_array.rb:52:in `-': cannot convert nil into Array (TypeError) puts '&演算' p [1,2,3,4,5] & [2,3] p [1,2,3,4,5] & [2,3,6] p [1,2,3,4,5,2,3] & [2,3] p ['a', 'b', 'c', 'd', 'e', 'f'] & ['c', 'd'] p ['a', 'b', 'c', 'd', 'e', 'f'] & [] # p ['a', 'b', 'c', 'd', 'e', 'f'] & nil # test_array.rb:64:in `&': cannot convert nil into Array (TypeError) puts '|演算' p [1,2,3,4,5] | [2,3] p [1,2,3,4,5] | [2,3,6] p [1,2,3,4,5,2,3] | [2,3] p ['a', 'b', 'c', 'd', 'e', 'f'] | ['c', 'd'] p ['a', 'b', 'c', 'd', 'e', 'f'] | [] # p ['a', 'b', 'c', 'd', 'e', 'f'] | nil # test_array.rb:71:in `|': cannot convert nil into Array (TypeError)
出力は以下の通りでした。
配列の演算 +演算 [1, 2, 6, 7, 8] *演算 [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3] [] "1a2a3" -演算 [1, 4, 5] [1, 4, 5] [1, 4, 5] ["a", "b", "e", "f"] ["a", "b", "c", "d", "e", "f"] &演算 [2, 3] [2, 3] [2, 3] ["c", "d"] [] |演算 [1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5] ["a", "b", "c", "d", "e", "f"] ["a", "b", "c", "d", "e", "f"]