如何在Ruby中访问以下代码里的arr数组或其每个元素?
如何访问Ruby方法返回的数组及其元素?
你的check方法已经默认返回了内部的arr数组(Ruby方法会把最后一行代码的执行结果作为返回值),所以不需要直接访问方法内部的局部变量arr,通过方法的返回值就能拿到这个数组,进而操作它或它的元素,具体方式如下:
1. 获取整个数组
把方法调用的结果赋值给变量,之后就能像操作普通数组一样使用它:
# 接收方法返回的数组 result_arr = check # 打印数组的完整结构 p result_arr # 输出:[:ll_de, :ll_de_a2, :ll_de_kk_fgh, :ll_abc_hh_de, :ll_abc_hh_de_fgh] # 逐行打印数组元素 puts result_arr
2. 访问单个元素
利用数组索引直接定位元素(索引从0开始,负索引表示从末尾倒数):
result_arr = check # 取第一个元素 puts result_arr[0] # 输出: ll_de # 取最后一个元素 puts result_arr[-1] # 输出: ll_abc_hh_de_fgh # 取第三个元素 puts result_arr[2] # 输出: ll_de_kk_fgh
3. 遍历所有元素
用数组的遍历方法逐个处理元素:
基本遍历
check.each do |element| puts "当前元素:#{element}" end
带索引的遍历
如果需要知道元素的位置,可以用each_with_index:
check.each_with_index do |element, index| puts "第#{index + 1}个元素:#{element}" end
直接链式调用
也可以不用赋值变量,直接在方法调用后链式调用数组方法:
# 直接过滤并打印包含"fgh"的元素 check.select { |elem| elem.to_s.include?("fgh") }.each { |elem| puts elem }
注意:Ruby中方法内部的局部变量(比如这里的arr)是无法从方法外部直接访问的,只能通过方法的返回值来获取它的内容,你的check方法已经正确返回了arr,所以直接利用返回值即可。
内容的提问来源于stack exchange,提问作者user21917643
相关产品推荐
相关产品推荐

