数组 – 在Scala中的apply()函数给出编译错误?
发布时间:2020-12-16 18:18:42 所属栏目:安全 来源:网络整理
导读:嘿,我有以下代码: var z:Array[String] = new Array[String](4);z(0) = "Dave"; z(1) = "Joe";z(2) = "Jim";z.apply(3) = "Roger"; 这里的最后一行是给出一个编译时错误说 – “类Array中缺少方法的参数;如果要将它作为部分应用的函数处理,请使用`_’跟随此
嘿,我有以下代码:
var z:Array[String] = new Array[String](4); z(0) = "Dave"; z(1) = "Joe"; z(2) = "Jim"; z.apply(3) = "Roger"; 这里的最后一行是给出一个编译时错误说 – “类Array中缺少方法的参数;如果要将它作为部分应用的函数处理,请使用`_’跟随此方法” 这对我来说没有意义,因为我已经读过,当你将一个或多个值的括号应用于变量时,Scala会将代码转换为对该变量名为apply的方法的调用. z(2) = "Jim"; 转换为 z.apply(2) = "Jim"; 然后为什么行 z.apply(3) = "Roger"; 给我一个编译时错误? 我是Scala的新手,所以任何帮助都会非常感谢! 解决方法
这个电话:
z(2) = "Jim"; 获取翻译为 z.update(2,"Jim") 尝试分配值时,apply不起作用. 更新 你可以自己检查一下.在控制台中运行:scala -print,并键入val ar = Array(1,2,3) 然后,当您键入下一行ar(2)= 5时,它将显示生成的代码.它有点复杂(解释器为了它自己的目的添加了很多东西),但你可以找到这个(或类似的)行: $line3.iw.ar().update(2,5); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |