数组
- 任何对象的有序整数索引集合。
- 数组的索引可以从为0 开始的正数,也可以为负数。一个负数的索相对于数组的末尾计数的,例如:索引为 -1 表示数组的最后一个元素。
- 数组不需要指定大小,当向数组添加元素时,Ruby 数组会自动增长。
- 数组的创建
# 只创建数组
names = Array.new
# 创建数组的同时设置数组的大小
names = Array.new(20)
# 创建数组的同时给数组中的每个元素赋相同的值
names = Array.new(7, "0")
# 创建数组的同时设置各元素的值
nums = Array.[](1, 2, 3, 4,5)
nums = Array[1, 2, 3, 4,5]
# 使用一个范围作为参数来创建一个数字数组
nums = Array(1..5)
方法
- 方法名应以小写字母开头,在调用之前被定义。
- 语法
def method_name [( [arg [= default]]...[, * arg [, &expr ]])]
process..
end
# 调用
method_name [arg [, ...,arg]]
- 参数默认值
如果方法调用时未传递必需的参数则使用默认值。
def method_name (var1=value1, var2=value2)
process..
end
- 方法返回值
默认返回一个值。这个返回的值是最后一个语句的值。
return 语句用于从 Ruby 方法中返回一个或多个值。
return [expr[`,' expr...]]
- 可变数量的参数
Ruby允许声明参数数量可变的参数。
def sample (*test)
for i in 0...test.length
code
end
end
sample "Zara", "6", "F"
Fizz Buzz解析
Write a program that outputs the string representation of numbers from 1 to n.
But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.
分别对1到n中的3的倍数、5的倍数以及15的倍数进行特殊处理,其它数字直接保存。在编码过程中需要用到:数组,求余运算符,循环,条件判断,以及方法返回值。
代码
# @param {Integer} n
# @return {String[]}
def fizz_buzz(n)
i=1
results = Array.new(n)
while i<=n do
mod3 = i%3
mod5 = i%5
mod15 = i%15
if mod15 == 0
results[i-1] = "FizzBuzz"
elsif mod3 == 0
results[i-1] = "Fizz"
elsif mod5 == 0
results[i-1] = "Buzz"
else
results[i-1] = i.to_s
end
i = i + 1
end
return results
end