Ruby in function (method) (ii)

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 function

Can be considered lambda function is an instance of 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" 
}



Guess you like

Origin blog.csdn.net/weixin_34061555/article/details/90876622