⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.93
Server IP:
65.108.141.171
Server:
Linux server.heloix.com 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
ri
/
2.7.0
/
system
/
Array
/
View File Name :
cdesc-Array.ri
U:RDoc::NormalClass[iI" Array:ET@I"Object;To:RDoc::Markup::Document:@parts[o;;[}o:RDoc::Markup::Paragraph;[I"CArrays are ordered, integer-indexed collections of any object.;To:RDoc::Markup::BlankLine o; ;[ I"OArray indexing starts at 0, as in C or Java. A negative index is assumed ;TI"Pto be relative to the end of the array---that is, an index of -1 indicates ;TI"Jthe last element of the array, -2 is the next to last element in the ;TI"array, and so on.;T@S:RDoc::Markup::Heading: leveli: textI"Creating Arrays;T@o; ;[I"AA new array can be created by using the literal constructor ;TI"K<code>[]</code>. Arrays can contain different types of objects. For ;TI"Hexample, the array below contains an Integer, a String and a Float:;T@o:RDoc::Markup::Verbatim;[I"/ary = [1, "two", 3.0] #=> [1, "two", 3.0] ;T:@format0o; ;[I"QAn array can also be created by explicitly calling Array.new with zero, one ;TI"N(the initial size of the Array) or two arguments (the initial size and a ;TI"default object).;T@o;;[I"ary = Array.new #=> [] ;TI",Array.new(3) #=> [nil, nil, nil] ;TI"/Array.new(3, true) #=> [true, true, true] ;T;0o; ;[ I"NNote that the second argument populates the array with references to the ;TI"Osame object. Therefore, it is only recommended in cases when you need to ;TI"Iinstantiate arrays with natively immutable objects such as Symbols, ;TI"numbers, true or false.;T@o; ;[I"MTo create an array with separate objects a block can be passed instead. ;TI"PThis method is safe to use with mutable objects such as hashes, strings or ;TI"other arrays:;T@o;;[I"5Array.new(4) {Hash.new} #=> [{}, {}, {}, {}] ;TI"9Array.new(4) {|i| i.to_s } #=> ["0", "1", "2", "3"] ;T;0o; ;[I"CThis is also a quick way to build up multi-dimensional arrays:;T@o;;[I"/empty_table = Array.new(3) {Array.new(3)} ;TI"=#=> [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]] ;T;0o; ;[I"KAn array can also be created by using the Array() method, provided by ;TI"EKernel, which tries to call #to_ary, then #to_a on its argument.;T@o;;[I">Array({:a => "a", :b => "b"}) #=> [[:a, "a"], [:b, "b"]] ;T;0S;;i; I"Example Usage;T@o; ;[I"OIn addition to the methods it mixes in through the Enumerable module, the ;TI"PArray class has proprietary methods for accessing, searching and otherwise ;TI"manipulating arrays.;T@o; ;[I"8Some of the more common ones are illustrated below.;T@S;;i; I"Accessing Elements;T@o; ;[ I"NElements in an array can be retrieved using the Array#[] method. It can ;TI"Ktake a single integer argument (a numeric index), a pair of arguments ;TI"R(start and length) or a range. Negative indices start counting from the end, ;TI"$with -1 being the last element.;T@o;;[I"arr = [1, 2, 3, 4, 5, 6] ;TI"arr[2] #=> 3 ;TI"arr[100] #=> nil ;TI"arr[-3] #=> 4 ;TI"arr[2, 3] #=> [3, 4, 5] ;TI" arr[1..4] #=> [2, 3, 4, 5] ;TI"arr[1..-3] #=> [2, 3, 4] ;T;0o; ;[I"PAnother way to access a particular array element is by using the #at method;T@o;;[I"arr.at(0) #=> 1 ;T;0o; ;[I"@The #slice method works in an identical manner to Array#[].;T@o; ;[I"JTo raise an error for indices outside of the array bounds or else to ;TI"Cprovide a default value when that happens, you can use #fetch.;T@o;;[I"*arr = ['a', 'b', 'c', 'd', 'e', 'f'] ;TI"Narr.fetch(100) #=> IndexError: index 100 outside of array bounds: -6...6 ;TI"'arr.fetch(100, "oops") #=> "oops" ;T;0o; ;[I"IThe special methods #first and #last will return the first and last ;TI"(elements of an array, respectively.;T@o;;[I"arr.first #=> 1 ;TI"arr.last #=> 6 ;T;0o; ;[I"<To return the first +n+ elements of an array, use #take;T@o;;[I"arr.take(3) #=> [1, 2, 3] ;T;0o; ;[I"K#drop does the opposite of #take, by returning the elements after +n+ ;TI" elements have been dropped:;T@o;;[I"arr.drop(3) #=> [4, 5, 6] ;T;0S;;i; I")Obtaining Information about an Array;T@o; ;[I"LArrays keep track of their own length at all times. To query an array ;TI"Labout the number of elements it contains, use #length, #count or #size.;T@o;;[I"?browsers = ['Chrome', 'Firefox', 'Safari', 'Opera', 'IE'] ;TI"browsers.length #=> 5 ;TI"browsers.count #=> 5 ;T;0o; ;[I";To check whether an array contains any elements at all;T@o;;[I"browsers.empty? #=> false ;T;0o; ;[I"@To check whether a particular item is included in the array;T@o;;[I".browsers.include?('Konqueror') #=> false ;T;0S;;i; I"Adding Items to Arrays;T@o; ;[I"KItems can be added to the end of an array by using either #push or #<<;T@o;;[I"arr = [1, 2, 3, 4] ;TI"%arr.push(5) #=> [1, 2, 3, 4, 5] ;TI"(arr << 6 #=> [1, 2, 3, 4, 5, 6] ;T;0o; ;[I"?#unshift will add a new item to the beginning of an array.;T@o;;[I".arr.unshift(0) #=> [0, 1, 2, 3, 4, 5, 6] ;T;0o; ;[I"HWith #insert you can add a new element to an array at any position.;T@o;;[I"@arr.insert(3, 'apple') #=> [0, 1, 2, 'apple', 3, 4, 5, 6] ;T;0o; ;[I"KUsing the #insert method, you can also insert multiple values at once:;T@o;;[I"3arr.insert(3, 'orange', 'pear', 'grapefruit') ;TI"H#=> [0, 1, 2, "orange", "pear", "grapefruit", "apple", 3, 4, 5, 6] ;T;0S;;i; I"!Removing Items from an Array;T@o; ;[I"IThe method #pop removes the last element in an array and returns it:;T@o;;[I"arr = [1, 2, 3, 4, 5, 6] ;TI"arr.pop #=> 6 ;TI"arr #=> [1, 2, 3, 4, 5] ;T;0o; ;[I"HTo retrieve and at the same time remove the first item, use #shift:;T@o;;[I"arr.shift #=> 1 ;TI"arr #=> [2, 3, 4, 5] ;T;0o; ;[I"0To delete an element at a particular index:;T@o;;[I"arr.delete_at(2) #=> 4 ;TI"arr #=> [2, 3, 5] ;T;0o; ;[I"FTo delete a particular element anywhere in an array, use #delete:;T@o;;[I"arr = [1, 2, 2, 3] ;TI"arr.delete(2) #=> 2 ;TI"arr #=> [1,3] ;T;0o; ;[I"IA useful method if you need to remove +nil+ values from an array is ;TI"#compact:;T@o;;[ I"1arr = ['foo', 0, nil, 'bar', 7, 'baz', nil] ;TI"2arr.compact #=> ['foo', 0, 'bar', 7, 'baz'] ;TI"<arr #=> ['foo', 0, nil, 'bar', 7, 'baz', nil] ;TI"2arr.compact! #=> ['foo', 0, 'bar', 7, 'baz'] ;TI"2arr #=> ['foo', 0, 'bar', 7, 'baz'] ;T;0o; ;[I"GAnother common need is to remove duplicate elements from an array.;T@o; ;[I"DIt has the non-destructive #uniq, and destructive method #uniq!;T@o;;[I"3arr = [2, 5, 6, 556, 6, 6, 8, 9, 0, 123, 556] ;TI"/arr.uniq #=> [2, 5, 6, 556, 8, 9, 0, 123] ;T;0S;;i; I"Iterating over Arrays;T@o; ;[ I"LLike all classes that include the Enumerable module, Array has an each ;TI"Nmethod, which defines what elements should be iterated over and how. In ;TI"Ncase of Array's #each, all elements in the Array instance are yielded to ;TI"$the supplied block in sequence.;T@o; ;[I"9Note that this operation leaves the array unchanged.;T@o;;[ I"arr = [1, 2, 3, 4, 5] ;TI"'arr.each {|a| print a -= 10, " "} ;TI"# prints: -9 -8 -7 -6 -5 ;TI"#=> [1, 2, 3, 4, 5] ;T;0o; ;[I"PAnother sometimes useful iterator is #reverse_each which will iterate over ;TI"0the elements in the array in reverse order.;T@o;;[ I"7words = %w[first second third fourth fifth sixth] ;TI"str = "" ;TI"3words.reverse_each {|word| str += "#{word} "} ;TI"8p str #=> "sixth fifth fourth third second first " ;T;0o; ;[I"MThe #map method can be used to create a new array based on the original ;TI"?array, but with the values modified by the supplied block:;T@o;;[ I"0arr.map {|a| 2*a} #=> [2, 4, 6, 8, 10] ;TI"/arr #=> [1, 2, 3, 4, 5] ;TI"1arr.map! {|a| a**2} #=> [1, 4, 9, 16, 25] ;TI"1arr #=> [1, 4, 9, 16, 25] ;T;0S;;i; I""Selecting Items from an Array;T@o; ;[ I"OElements can be selected from an array according to criteria defined in a ;TI"Lblock. The selection can happen in a destructive or a non-destructive ;TI"Omanner. While the destructive operations will modify the array they were ;TI"Pcalled on, the non-destructive methods usually return a new array with the ;TI"?selected elements, but leave the original array unchanged.;T@S;;i; I"Non-destructive Selection;T@o;;[ I"arr = [1, 2, 3, 4, 5, 6] ;TI"0arr.select {|a| a > 3} #=> [4, 5, 6] ;TI"3arr.reject {|a| a < 3} #=> [3, 4, 5, 6] ;TI"0arr.drop_while {|a| a < 4} #=> [4, 5, 6] ;TI"9arr #=> [1, 2, 3, 4, 5, 6] ;T;0S;;i; I"Destructive Selection;T@o; ;[I"P#select! and #reject! are the corresponding destructive methods to #select ;TI"and #reject;T@o; ;[I"LSimilar to #select vs. #reject, #delete_if and #keep_if have the exact ;TI"7opposite result when supplied with the same block:;T@o;;[I"/arr.delete_if {|a| a < 4} #=> [4, 5, 6] ;TI"/arr #=> [4, 5, 6] ;TI" ;TI"arr = [1, 2, 3, 4, 5, 6] ;TI"-arr.keep_if {|a| a < 4} #=> [1, 2, 3] ;TI",arr #=> [1, 2, 3];T;0: @fileI"array.c;T:0@omit_headings_from_table_of_contents_below0o;;[ ;I"lib/abbrev.rb;T;0o;;[ ;I"lib/mkmf.rb;T;0o;;[ ;I"lib/racc/compat.rb;T;0o;;[ ;I"lib/rexml/xpath_parser.rb;T;0o;;[ ;I"lib/shellwords.rb;T;0o;;[o; ;[I"for pack.c;T;I"pack.rb;T;0;0;0[ [ [[I"Enumerable;To;;[ ;@7;0I"array.c;T[[I" class;T[[:public[[I"[];T@T[I"new;T@T[I"try_convert;T@T[:protected[ [:private[ [I" instance;T[[;[t[I"&;T@T[I"*;T@T[I"+;T@T[I"-;T@T[I"<<;T@T[I"<=>;T@T[I"==;T@T[I"[];T@T[I"[]=;T@T[I"abbrev;TI"lib/abbrev.rb;T[I" all?;T@T[I" any?;T@T[I"append;T@T[I" assoc;T@T[I"at;T@T[I"bsearch;T@T[I"bsearch_index;T@T[I" clear;T@T[I"collect;T@T[I" collect!;T@T[I"combination;T@T[I"compact;T@T[I" compact!;T@T[I"concat;T@T[I" count;T@T[I" cycle;T@T[I"dclone;TI"lib/rexml/xpath_parser.rb;T[I"deconstruct;T@T[I"delete;T@T[I"delete_at;T@T[I"delete_if;T@T[I"difference;T@T[I"dig;T@T[I" drop;T@T[I"drop_while;T@T[I" each;T@T[I"each_index;T@T[I"empty?;T@T[I" eql?;T@T[I" fetch;T@T[I" fill;T@T[I"filter;T@T[I"filter!;T@T[I"find_index;T@T[I" first;T@T[I"flatten;T@T[I" flatten!;T@T[I" hash;T@T[I" include?;T@T[I" index;T@T[I"initialize_copy;T@T[I"insert;T@T[I"inspect;T@T[I"intersection;T@T[I" join;T@T[I"keep_if;T@T[I" last;T@T[I"length;T@T[I"map;T@T[I" map!;T@T[I"max;T@T[I"min;T@T[I"minmax;T@T[I" none?;T@T[I" one?;T@T[I" pack;TI"pack.rb;T[I"permutation;T@T[I"pop;T@T[I"prepend;T@T[I"product;T@T[I" push;T@T[I"rassoc;T@T[I"reject;T@T[I"reject!;T@T[I"repeated_combination;T@T[I"repeated_permutation;T@T[I"replace;T@T[I"reverse;T@T[I" reverse!;T@T[I"reverse_each;T@T[I"rindex;T@T[I"rotate;T@T[I"rotate!;T@T[I"sample;T@T[I"select;T@T[I"select!;T@T[I"shelljoin;TI"lib/shellwords.rb;T[I" shift;T@T[I"shuffle;T@T[I" shuffle!;T@T[I" size;T@T[I" slice;T@T[I"slice!;T@T[I" sort;T@T[I" sort!;T@T[I" sort_by!;T@T[I"sum;T@T[I" take;T@T[I"take_while;T@T[I" to_a;T@T[I"to_ary;T@T[I" to_h;T@T[I" to_s;T@T[I"transpose;T@T[I" union;T@T[I" uniq;T@T[I" uniq!;T@T[I"unshift;T@T[I"values_at;T@T[I"zip;T@T[I"|;T@T[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ;0;0[@7@:I"lib/csv/core_ext/array.rb;T@=I"lib/pp.rb;T@@@C@F@L@LcRDoc::TopLevel