gpt4 book ai didi

java - Scala Singleton 与 Java 的比较

转载 作者:行者123 更新时间:2023-11-30 07:11:38 24 4
gpt4 key购买 nike

<分区>

所以我知道在 Scala 中你不能有静态成员,而是我们使用单例(虽然还没有完全理解这个概念)。所以我假设在 Scala 中有这样的代码

import scala.collection.mutable.Map
//Making use of Singleton: companion Object & Class

class CheckSumAccumulator {
private var sum = 0
def add(b: Byte) { sum += b }
def checksum(): Int = ~(sum & 0xFF) + 1
}

object CheckSumAccumulator{
private val cache = Map[String, Int]()

def calc(s: String): Int =
if (cache.contains(s))
cache(s)
else {
val acc = new CheckSumAccumulator
for (c <- s)
acc.add(c.toByte)
val cs = acc.checksum()
cache += (s -> cs)
cs
}
}

在 Java 中会有这样的等价物:

public class CheckSumAccumulator {
private var sum = 0
static void add(byte b){
...
}

static int checksum(){
...
}

public static void main (String [] args){
private val cache = ...

def calc(String s){
...
}
}
}

我的思路对吗?我正在学习 Scala :)

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com