Ruby-方法

#方法
def helloworld
  puts "Hello World!"
end
helloworld

#帶參數的方法
def hello(name)
  puts "Hello #{name}"
end
hello("World!")
hello("Ruby")

#帶可變長參數的方法
def hello(*name)
  name.each { |x| puts "Hello #{x}" }   #each迭代器將name的值傳遞給x
end
hello("zhao","wang","li")

def sum(*args)
  sum = 0
  args.each { |x| sum += x }
  return sum
end
p sum(1,2,3)

#定義帶塊的方法
def myloop
  while true
    yield     #執行塊
  end
end
  num = 1
  myloop do
  puts "num is #{num}"
    break if num > 100
    num *= 2
  end

#帶關鍵字參數的方法
def score(chinese:0,math:0,english:0)
  puts "chinese is #{chinese}"
  puts "math is #{math}"
  puts "english is #{english}"
end
score(chinese:10,math:20,english:30)

#關鍵字與未定義參數搭配使用的方法
def math(x:0,y:0,**args)
  [x,y,args]
end
p math(x:1,y:2,n:3,m:4)   #未定義關鍵字參數以散列的形式保存

#關鍵字參數與普通參數搭配使用的方法
def pp(z,x:0,y:0)
  [z,x,y]
end
p pp(1,x:2,y:3)

#把數組分解爲參數
def foo(a,b,c)
  a+b+c
end
args1 = [2,3]
p foo(1,*args1)
args2 = [1,2,3]
p foo(*args2)

#把散列作爲參數傳遞
def func(arg)
  arg
end
p func(a:1,b:2)

def func2(arg1,arg2)
  [arg1,arg2]
end
p func2(100,a:1,b:2,c:3)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章