相关疑难解决方法(0)

Ruby on Rails Switch

有人可以举例说明如何在Ruby中使用switch case作为变量吗?

ruby switch-statement

61
推荐指数
1
解决办法
8万
查看次数

为什么`在Ruby中返回a或b`是一个void值表达式错误?

这很好:

def foo
  a or b
end
Run Code Online (Sandbox Code Playgroud)

这也没关系:

def foo
  return a || b
end
Run Code Online (Sandbox Code Playgroud)

返回void value expression:

def foo
  return a or b
end
Run Code Online (Sandbox Code Playgroud)

为什么?它甚至没有被执行; 它没有通过语法检查.什么void value expression意思?

ruby return operator-precedence or-operator

17
推荐指数
2
解决办法
1258
查看次数

Slim中的案例陈述

有没有办法在Slim中为以下示例编写case语句.我对StackOverflow问题进行了一些更改:如何在Ruby中编写switch语句

case a
when 1..5
  = "It's between 1 and 5"
when 6
  = "It's 6"
when String
  = "You passed a string"
else
  = "You gave me #{a} -- I have no idea what to do with that."
end
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但产生了错误.

= case @taxon.name
  = when "Wedding Cakes"
    div.taxon-descripiton Wedding Cake Description
Run Code Online (Sandbox Code Playgroud)

这就是我所说的

... syntax error, unexpected tIVAR, expecting keyword_when
; @output_buffer.safe_concat(("<when>\"Weddin...
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-3.2 slim-lang

13
推荐指数
1
解决办法
4314
查看次数

proc可以与Ruby 2.0中的case语句一起使用吗?

我记得case在Ruby 2.0的语句中允许使用procs ,但我不能谷歌.

我尝试检查Ruby 2.0.0 NEWS以及如何在Ruby中编写switch语句.我也访问过http://ruby-doc.org,但它对关键字的链接是针对Ruby 1.9而不是Ruby 2.0.

案件陈述中是否允许过程?

ruby switch-statement ruby-2.0

9
推荐指数
1
解决办法
2025
查看次数

'case'语句如何与常量一起使用?

我使用的是Ruby 1.9.2和Ruby on Rails 3.2.2.我有以下方法:

# Note: The 'class_name' parameter is a constant; that is, it is a model class name.
def my_method(class_name)
  case class_name
  when Article then make_a_thing
  when Comment then make_another_thing
  when ...     then ...     
  else raise("Wrong #{class_name}!")
  end  
end
Run Code Online (Sandbox Code Playgroud)

我想理解为什么在case上面的语句中,else当我执行类似的方法调用时,它始终运行"部分" my_method(Article),my_method(Comment)依此类推.

我该如何解决这个问题?有人有建议如何处理这个?

ruby class constants switch-statement

6
推荐指数
1
解决办法
1219
查看次数

用于物理和数学常量的库以及c#.net中的基本转换

我看到我们可以Math.PI在C#中获得PI的价值.

你知道是否存在一个库或一个包来获取其他着名常数的舍入值,例如Avogadroo,Kelvin,Planck,Coulombs,黄金数,牛顿常数?

如果我们可以进行一些简单的转换,那将是非常重要的.

在另一个世界:对于科学来说,这是一个轻松的时刻.它可以为很多人节省很多时间.

.net c#

5
推荐指数
1
解决办法
1135
查看次数

我可以在案例陈述中使用.include?()吗?红宝石

我已经开始学习Ruby了.我有一个小项目来构建游戏并尝试创建一个接收用户输入并相应处理的函数.

def Game.listener
  print "> "

  while listen = $stdin.gets.chomp.downcase

    case listen
    when (listen.include?("navigate"))
      puts "Navigate to #{listen}"
      break
    when ($player_items.include?(listen))
      Items.use(listen)
      break
    end

    puts "Not a option"
    print "> "
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,case语句无法检测到我已键入导航.有没有办法解决这个问题,或者如果我完全关闭,有人能指出我正确的方向吗?

我找到了解决问题的方法,这是一种安全可靠的方法吗?

  while listen = $stdin.gets.chomp
      case listen.include?(listen)
      when listen.include?("navigate")
        puts "Navigate to #{listen}"
      when listen.include?("test")
        puts "test"
      when $player_items.include?(listen)
        puts "Using the #{$player_items[listen]}"
        break
      else
        puts "Not a option"
      end
      print "> "
   end
Run Code Online (Sandbox Code Playgroud)

ruby case include case-when

4
推荐指数
1
解决办法
5180
查看次数

缩短Ruby中的if-else结构

我写过类似的东西,我从Visual Basic 6.0中知道的if-else逻辑,但我确信有更好的"Ruby方式"来编写它.

你能告诉我在Ruby世界中它会是什么样子吗?

  if params[:medication_name].nil?
    med_name = 'all'
  elsif params[:medication_name] == 'undefined'
    med_name = 'all'
  else
    med_name = params[:medication_name]
  end
Run Code Online (Sandbox Code Playgroud)

ruby

3
推荐指数
2
解决办法
239
查看次数

C#在引号内加上引号?

我正在使用String.Replace来替换某些字符.如何用我选择的不同标志替换"标志?

artikelBezeichnung = artikelBezeichnung.Replace(""", "!");
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用

c#

1
推荐指数
2
解决办法
509
查看次数

Ruby代替goto

我怎么能在Ruby中做这样的事情?

if variable = something  
    do A  
    do B  
    do D  
elsif variable = something different
    do A
    do B
    do C
    do D
else
    do A
    do C
    do D

A = set of loops with if else
B = set of loops with if else
C = set of loops with if else
D = final steps
Run Code Online (Sandbox Code Playgroud)

寻找一种在Ruby中完成这样的事情的方法.我确定这个问题在某个地方得到了回答,但我不知道它会被称为什么.我找到了一些关于宝石的信息,允许你使用goto但我更愿意学习正确的方法来做到这一点(似乎这可能是一个笑话).我更喜欢自己编写代码,但如果有助于回答我的问题,我可以提出我的实际代码.

如果有人能指出我正确的方向.

此外,如果goto不是一个笑话,为什么不能使用?

ruby

0
推荐指数
1
解决办法
372
查看次数