[Ruby] Map and return?

Published on
Le Hoang Tam-
1 min read

Overview

    Hôm nay nhận được 1 câu hỏi đến từ vị trí của CườngNĐ, mình vẫn chưa tìm hiểu lý do tại sao lại có kết quả khác nhau như vậy. Viết đây để nhớ, mai mốt tìm ra lý do rồi update lại bài blog này

    Câu hỏi:

    # ruby
    arr =[[1,2], [3,4], [5,6]]
    arr.map{|a,b| return a if a + b > 10}
    
    #> LocalJumpError (unexpected return)
    Nếu đổi lại thế này
    arr.map{|a,b| a if a + b > 10}
    #> [nil, nil, 5]
    

    Và nếu để vào method như thế này

    # ruby
    
    
    def test_arr
      arr =[[1,2], [3,4], [5,6]]
      arr.map{|a, b| return a if a + b > 10}
    end
    
    #> 5
    

    Tại sao nhỉ?