ruby - 我可以使用 `else if` 而不是 `elsif` 吗?

标签 ruby

  1. elsif 上使用 else if 是否安全?
  2. 使用 elsif 是否更好,因为它遵循 Ruby 的类型 惯例?
  3. 或者这是一种偏好?

这是摘自一本书的一段代码。我添加了额外的 end 关键字并将 elsif 关键字替换为 else if

def describe(inhabitant)
  if inhabitant == "sophie"
    puts 'gender: female'
    puts 'height: 145'
  else if inhabitant == "paul"
    puts 'gender: male'
    puts 'height: 145'
  else if inhabitant == "dawn"
    puts 'gender: female'
    puts 'height: 170'
  else if inhabitant == "brian"
    puts 'gender: male'
    puts 'height: 180'
  else if 
    puts 'species: Trachemys scripta elegans'
    puts 'height: 6'
  end
  end 
  end   
  end
  end
end

这让我意识到 else if 是多么丑陋。

最佳答案

您可以使用 else if 并且它是安全的。但是请注意,这意味着需要额外的 end 关键字。

if n == 1
  puts "foo"
elsif n == 2
  puts "bar"
end

逻辑上等同于:

if n == 1
  puts "foo"
else if n == 2
       puts "bar"
     end
end

或等价物:

if n == 1
  puts "foo"
else 
  if n == 2
    puts "bar"
  end
end

关于ruby - 我可以使用 `else if` 而不是 `elsif` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859386/

相关文章:

ruby - 单引号 Ruby 字符串——不一致的转义

ruby-on-rails - Ruby On Rails 脚手架需要包含外键吗?

ruby - 没有 Rails 的 Ruby 中的部分 HAML 模板

ruby - 此代码在一台机器上有效,但在另一台机器上失败。如何调试?

ruby-on-rails - 如何简化将多个值插入 Ruby 中的数组?

ruby - 如何使用 Ruby DBI 的 'select_all' 与 'execute-fetch/each-finish'

ruby - "rhc setup"抛出以下错误

ruby - 为什么 Array.reverse_each 比 Array.reverse.each 快

ruby-on-rails - 使用 rbenv 安装 ruby​​ 2.2.3 后,它有一个不同的版本

ruby - 计算 Ruby 中的大写字母