Ruby Detect method

前端 未结 4 1031
情书的邮戳
情书的邮戳 2021-01-31 03:00

Select makes sense. But can someone explain .detect to me? I don\'t understand these data.

>> [1,2,3,4,5,6,7].detect { |x| x.between?(3,4) }
=> 3
>&g         


        
4条回答
  •  后悔当初
    2021-01-31 03:22

    find and detect will always either return a single object or they will return nil if nothing is matched:

    [1,2,3,4,5,6,7].detect { |x| x.between?(1,7) }
    => 1
    

    find_all and select will return an array of things that it finds that match:

    [1,2,3,4,5,6,7].select { |x| x.between?(1,7) }
    => [1, 2, 3, 4, 5, 6, 7]
    

    Reference Link

提交回复
热议问题