代码之家  ›  专栏  ›  技术社区  ›  marcamillion blelump

为什么Ruby要抱怨这个除非参数集?

  •  0
  • marcamillion blelump  · 技术社区  · 6 年前

    unless (parameter.values.any? "" || parameter.values.any? 0 || parameter[:num_units].eql? 0 || parameter[:num_units].nil? || parameter[:num_units].empty?)
    

    这是我得到的错误:

    : syntax error, unexpected tINTEGER, expecting ')' ...? "" || parameter.values.any? 0 || parameter[:num_units].eql... ... ^ 
    

    基本上,我要做的是检查传入的任何参数的值是否是 nil "" 0

    2 回复  |  直到 6 年前
        1
  •  1
  •   t56k    6 年前

    .any? 功能:

    (parameter.values.any?("") || parameter.values.any?(0) || parameter[:num_units].eql?(0) || parameter[:num_units].nil? || parameter[:num_units].empty?)
    => true
    

        2
  •  0
  •   Caleb Keene    6 年前

    unless (parameter.values & ["", 0]).any? || [0, nil, []].include?(parameter[:num_units])

    (以下简称 [0, nil, []] parameter[:num_units] 您要检查的是一个数组-如果它是一个哈希,那么显然要将比较数组切换为 [0, nil, {}]