尽管我已经赋值,但为什么我得到了无效值表达式

时间:2016-08-05 18:16:13

标签: ruby

我是红宝石的新手。我有以下代码块:

colMeans(y[sapply(y, is.numeric)], na.rm=TRUE)

但是,我正在为a = 10 while a < 20 do puts "True" a++ next unless a == 12 puts "This is not 12" end $end 获取无效值表达式。我已经为其分配了10个,所以我不知道为什么我会得到无效值。

2 个答案:

答案 0 :(得分:2)

a++替换a += 1 应该工作。

Ruby没有++运算符。 No increment operator (++) in Ruby?

答案 1 :(得分:0)

假设

a = 2

以下都是等效的,返回5

a++ 3
a + +3
a + +
3
a++

3

因此,

a++

next unless a == 12

相同
a + +next unless a == 12

这会生成"void value expression"例外,因为next unless a == 12没有返回值(要发送到方法:+)。

当然,修复方法是将a++替换为

a = a + 1

或其缩写形式

a += 1