def full_name1 first_name, last_name
puts first_name + " " + last_name
end
def full_name2 first_name:, last_name:
puts first_name + " " + last_name
end
full_name1 "Ma", "xiaoan"
full_name2 first_name: "Ma", last_name: "xiaoan"
def base_ball_teamlist1
p ["A's", "Angels", "Astros"]
end
base_ball_teamlist1
def base_ball_teamlist2
return p ["A's", "Angels", "Astros"]
end
base_ball_teamlist2
def base_ball_teamlist3
x = 1
return ["A's", "Angels", "Astros"] if x == 10
["Yankness", "Mets"]
end
p base_ball_teamlist3
lambda and Proc函数
可以认为lambda是Proc函数的一个实例
# Stabby lambdas
full_name3 = ->(first_name, last_name) { first_name + " " + last_name }
p full_name3["Ma", "xiaoan"]
p full_name3.call("Ma", "xiaoan")
# proc and lambda difference
full_name4 = lambda {|first, last| first + " " + last }
full_name5 = Proc.new {|first, last| first + " " + last }
p full_name4.call("ma", "xa")
p full_name4["Ma", "xiaoan"]
p full_name5.call("ma","xa","x")
p full_name5["Ma", "xiaoan","x"]
def my_method1
x = lambda {return}
x.call
p "Text within the method."
end
def my_method2
x = Proc.new {return}
x.call
p "Text within the method"
end
p my_method1
p my_method2
def roste1r player1, player2, player3
puts player1
puts player2
puts player3
end
roster1 "a", "b", "c"
# 数组作为函数的参数
data1 = ["a", "b", "c"]
def roster2 *players
puts *players
end
# roster2 "a", "b", "c"
roster2 data1
# 哈希值作为函数的参数
def roster3 **players_with_positions
players_with_positions.each do |player, position|
puts "Player: #{player}"
puts "Position: #{position} \n \n"
end
end
data = {
"Altuve": "2nd Base",
"Alex Bregman": "3rd Base",
"Evan Gattis": "Catcher",
"George Springer": "OF"
}