Array.rotate!Ruby中的示例方法

Array.rotate!方法

在本文中,我们将研究Array.rotate!方法。你们都必须认为该方法必须执行与旋转某些元素有关的操作。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法并演示程序代码来理解它。

方法说明:

该方法是一个公共实例方法,为Ruby库中的Array类定义。该方法的工作方式是旋转Array实例中存在的内容或对象。它以以下方式旋转Array元素:将第二个元素视为第一个元素,将最后一个对象视为Array类的对象的第一个元素。如果在方法内部传递任何负整数,则旋转方向相反。Array.rotate!是一种破坏性方法,其中此方法创建的更改将对Self Array实例的实际顺序产生影响,并且这些更改是永久的。

语法:

    array_instance.rotate! -> new_array
    or
    array_instance.rotate!(count) -> new_array

Argument(s) 需要:

此方法确实采用一个参数,并且该参数决定将从哪个索引中保留旋转。

范例1:

=begin
  Ruby program to demonstrate rotate! method
=end

# 数组声明
lang = ["C++","Java","Python","Html","Javascript","php","Ruby","Kotlin"]

puts "Array rotate! implementation."
print lang.rotate!
puts ""

puts "The first element of the Array is: #{lang[0]}"

puts "Array elements are:"
print lang

输出结果

Array rotate! implementation.
["Java", "Python", "Html", "Javascript", "php", "Ruby", "Kotlin", "C++"]
The first element of the Array is: Java
Array elements are:
["Java", "Python", "Html", "Javascript", "php", "Ruby", "Kotlin", "C++"]

说明:

在上面的代码中,您可以观察到借助于Array.rotate,我们正在旋转Array类实例的内容!方法。您可以观察到旋转内容之后,第一个元素是“ Java”,最后一个元素是“ C ++”。由于此方法是一种破坏性方法,因此它对Array实例中元素的实际排列产生了影响。

范例2:

=begin
  Ruby program to demonstrate rotate! method
=end

# 数组声明
table = [2,4,6,8,10,12,14,16,18,20]

puts "Array rotate! implementation"
print table.rotate!(-2)
puts ""

puts "The first element of the Array is: #{table.first}"

puts "Array elements are:"
print table

输出结果

Array rotate! implementation
[18, 20, 2, 4, 6, 8, 10, 12, 14, 16]
The first element of the Array is: 18
Array elements are:
[18, 20, 2, 4, 6, 8, 10, 12, 14, 16]

说明:

在上面的代码中,您可以观察到该方法也适用于Integer Array,并且借助于Array.rotate方法,我们正在旋转Array类实例的内容。由于我们在方法内部传递了一个负整数,因此旋转从Array实例的后端开始,而第二个元素从最后一个开始。您可以观察到,在旋转内容之后,第一个元素为18,因为此方法具有破坏性,并且会在Array实例中更改内容的实际排列。