加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala – 可变(var)方法参数引用

发布时间:2020-12-16 09:44:28 所属栏目:安全 来源:网络整理
导读:编辑:我在这里不断上升。只是为了纪录,我不再认为这很重要。我没有需要它,因为我发布。 我想在Scala中执行以下操作 def save(srcPath: String,destPath: String) { if (!destPath.endsWith('/')) destPath += '/' // do something} …但我不能beacuse des
编辑:我在这里不断上升。只是为了纪录,我不再认为这很重要。我没有需要它,因为我发布。

我想在Scala中执行以下操作

def save(srcPath: String,destPath: String) {
    if (!destPath.endsWith('/'))
        destPath += '/'
    // do something
}

…但我不能beacuse destPath是一个val。有没有办法将destPath声明为var?

注意:有类似的问题,但是在所有的OP中只是想修改数组。

请不要建议以下:

Mutating the input parameters is often seen as bad style and makes it
harder to reason about code.

我认为它在命令式编程中是有效的(Scala允许两者,对吗?),添加像tmpDestPath这样的东西只会增加杂乱。

编辑:不要误会。我知道字符串是不可变的,我不想引用引用,因为我不想修改调用者的数据。我只是想修改本地引用字符串,调用者给我的字符串(例如,orig’/’)。我只想在当前方法的范围内修改该值。看,这在Java中完全有效:

void printPlusOne(int i) {
    i++;
    System.out.println("i is: " + i);
    System.out.println("and now it's same: " + i);
}

我不必创建新的变量,我不必计算i 1两次。

解决方法

你不能。

你必须声明一个额外的var(或使用更多功能的风格:-))。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读