1、使用负索引访问数组 array = [1, 2, 3, 4, 5, 6, 7, 8] 中的第三个元素。
在编程语言中,负索引从数组末尾开始计数,最后一个元素索引是 -1 。所以该数组中第三个元素的负索引是 -3 ,即 array[-3] 可访问该元素。
2、构建一个与数组 [1, 2, 3, 4, 5, 6, 7, 8] 作用相同的哈希表,要求使用 [] 运算符访问哈希表和数组时效果相同。
对应的哈希表可构建为:
hash = {0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6, 6 => 7, 7 => 8}
这样使用 [] 运算符访问哈希表和数组时效果相同,如 hash[0] 与 array[0] 都能获取到相同的值。
3、使用范围来创建数组
可使用如下代码创建数组:
range = 1..5
puts range.to_a # 创建包含1, 2, 3, 4, 5的数组
range = 1...5
puts range.to_a # 创建包含1, 2, 3, 4的数组
range = "a".."e"
puts range.to_a # 创建包含"a", "b", "c", "d", "e"的数组
range = "alpha".."alphe"
puts range.to_a # 创建包含"alpha", "alphb", "alphc", "alphd", "alphe"的数组
4、创建一个调用自身的方法(这种技术称为递归)来计算阶乘。阶乘是一个数与所有小于它的正整数的乘积,例如,6的阶乘写作6!,即6 × 5 × 4 × 3 × 2 × 1 = 720。
下面是使用递归方法计算阶乘的示例代码:
def factorial(number)
if number == 1
return 1
else
return number * factorial(number - 1)
end
end
puts factorial(6)
5、构建一个名为 printer 的方法,你可以用一些文本调用该方法,然后该方法调用一个代码块来打印出该文本。
以下是实现该功能的代码:
def printer(text)
yield text
end
printer("Hello") { |data| puts data }
这段代码定义了一个名为 printer 的方法,它接受一个参数 text ,然后使用 yield 关键字调用传递给它的代码块,并将 text 作为参数传递给代码块。最后,调用 printer 方法并传入字符串 "Hello" ,同时提供一个代码块来打印传入的文本。
6、创建一个名为array_converter的方法,该方法接受四个参数并将它们以数组形式返回。
以下是实现该功能的 Ruby 代码:
def array_converter(arg1, arg2, arg3, arg4)
[arg1, arg2, arg3, arg4]
end
# 调用示例
result = array_converter(1, 2, 3, 4)
puts result.inspect
7、创建一个名为 Vehicle 的类,并将车辆的颜色传递给构造函数。包含一个名为 get_color 的方法以返回车辆的颜色。打印出车辆的颜色。
class Vehicle
def initialize(color)
@color = color
end
def get_color
return @color
end
end
vehicle = Vehicle.new("blue")
puts "The vehicle's color is " + vehicle.get_color
8、基于两个模块创建一个Car类,其中一个模块包含get_color方法,另一个模块包含get_number_of_wheels方法。打印出汽车的颜色和车轮数量。
module A
def get_color
return @color
end
end
module B
def get_number_wheels
return "four"
end
end
class Car
include A
include B
def initialize(color)
@color = color
end
end
car = Car.new("red")
puts "The new car is " + car.get_color
puts "The new car has " + car.get_number_wheels + " wheels."
9、创建一个名为 test 的 Web 应用程序,其中包含一个名为 do 的控制器和一个名为 greeting 的动作,该动作显示文本“Hello”。
- 编辑应用程序中控制器文件,路径为
C:\rubydev\ch04\test\app\controllers

最低0.47元/天 解锁文章
704

被折叠的 条评论
为什么被折叠?



