使用splat:SyntaxError:意外的“ \ n”,预期为“。” 要么 &。或::或'['

史蒂夫

为什么

 a = *(1..10)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

*(1..10)
SyntaxError: unexpected '\n', expecting '.' or &. or :: or '['

(我以为它会返回与第一种情况相同的结果,但是它根本不会做任何赋值)。好奇地知道原因是否与红宝石有关,或更具体地说与splat(*)有关

卡切

我不认为splat是一元运算符,只能单独使用/ w这样的表达式。

在方法调用中为参数赋值的语法:

def foo(a, b)
  puts a
  puts b
end

foo(*[:a, :b])

对于二传手,这意味着:

obj.my_attribute = *(1..10)

是糖的方法:

obj.my_attribute=(*1..10)

它也用于Array文字表达式中: [*1..10]

我发现它a = *(1..10)起作用是因为它是局部变量赋值,但我感到有些惊讶,但也许Ruby会以相同的方式对待它。

*(1..10)但是,绝对不是方法调用。您应该使用(1..10).to_a

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Inflector.php第265行中的FatalErrorException:语法错误,意外的':',期望为';' 要么 '{'

而委托要么为零要么没有实现外设:didDiscoverCharacteristicsForService:error: (Corebluetooth, Swift)

Pandas 要么找不到特定的数据行,要么将其检测为空数据框

如何定义“要么……要么”?

除单个整数外,数组中的整数要么全部为奇数,要么全部为偶数。检索此单个整数。JS

检查Java中的两个参数,要么都不为null要么都优雅地为null

[]使用.toArray阵列()转换的ArrayList到诠释?要么...?

R正则表达式使用“ +”“?” 要么 ”*”

如何使用ExceptT来替换大量的IO(要么是ab)

我为我的飞龙创建了碰撞箱,但碰撞箱要么不碰撞,要么不产生输出。我该如何解决?

Nuxt.js动态组件错误“要么将模板预编译为渲染函数,要么使用编译器附带的内部版本”

在循环中使用Java LayoutInflater添加视图要么不设置宽度,要么仅添加循环中的第一项

角度代码闻到“要么删除此导入,要么将其添加为依赖项。” 当使用我写的界面时。如何使我的代码合规?

语法错误,意外的tLABEL,预期为')'(SyntaxError)

SyntaxError意外的keyword_ensure,预期为keyword_end

如何使用?要么 ??有条件地渲染Blazor模板?

Scala 要么带列表

要么/或类图

对于以下每对函数 f(n) 和 g(n),要么 f(n) = O(g(n)) 要么 g(n) = O(f(n)),但不能同时进行。确定是哪种情况

Reactjs:意外令牌,预期为“,”

在Kotlin中使用Java库时,使用起来更惯用吗?要么 !!方法返回值?

无法使用 aws-sdk 获取 AWS 机密 - 我要么收到缺少凭证错误和一个对象

将输入的值放在一起,然后加上“?” 要么 ”!” 使用Vue.js创建链接

简单的 Rx 示例要么阻塞要么有竞争条件

查找记录要么属于主表,要么属于关系雄辩的ORM

左联接要么返回所有记录,要么不返回

response.get() 要么不返回要么超时

setState 要么不更新状态,要么不重新渲染组件

Zend输入筛选器“要么”要么不可能?