新手红宝石问题.
我上课了
class ReportPage < Page
def badge_item(item_int)
case item_int
when 1..50 then @item= 1
when 50..100 then @item= 50
end
def check_completed_items_badge
badge_item(50)
puts @item
end
end
Run Code Online (Sandbox Code Playgroud)
果然,它没有.这就是我的问题 - 如何在类的另一个方法中使用@item变量?
非常感谢!
事情是你想念你的end关键词case.这个程序还有另一个问题.when(1..50)包含1到50之间的所有情况,并when(50..100)覆盖50到100,这将导致混淆原因badge_item(50)将进入第一行,设置@item为1并退出该case ... end块.所以最后它会1在屏幕上打印出来.
为了更清楚地表达你的意图,你应该使用
def badge_item(item_int)
@item = case item_int
when 1..49 then 1 #two dots, cover 1 to 49
when 50..100 then 50
end
end
Run Code Online (Sandbox Code Playgroud)
要么
def badge_item(item_int)
@item = case
when 1...50 then 1 #three dots between, cover 1 to 49
when 50..100 then 50
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |