在Scala中,在某些情况下是否需要分号?
发布时间:2020-12-16 18:24:23 所属栏目:安全 来源:网络整理
导读:我正在学习 scala并尝试在我最近的项目中使用它.问题来了.这是关于分号必要性的问题之一.这是我的例子: var str = "123.4"var d = str toDoubleif(d 10) println("Larger than 10") 这些代码无法编译.因为如果(d 10)println(“大于10”)返回值,并且编译器认
我正在学习
scala并尝试在我最近的项目中使用它.问题来了.这是关于分号必要性的问题之一.这是我的例子:
var str = "123.4" var d = str toDouble if(d > 10) println("Larger than 10") 这些代码无法编译.因为如果(d> 10)println(“大于10”)返回值,并且编译器认为该值是toDouble方法的参数.但是,toDouble没有参数.这会导致错误. 解决这个问题的最简单方法是在第2行的末尾添加一个分号.就像这样: var str = "123.4" var d = str toDouble; if(d > 10) println("Larger than 10") 这让我很困惑,我认为我根本不需要分号,因为我不会在同一行放两个语句.有些线以分号结束而其他线不以分号结束,这让我很不舒服.还有,这有道理吗? 并且,感谢任何回复我的人. 解决方法
聚合可能的答案:要编写相同的东西而不会出现语法错误,您可以使用:
>分号 var d = str toDouble; if (d > 10) println("Larger than 10") >点语法 var d = str.toDouble if (d > 10) println("Larger than 10") >括号 var d = (str toDouble) if (d > 10) println("Larger than 10") >大括号 var d = {str toDouble} if (d > 10) println("Larger than 10") >空行分隔符 var d = str toDouble if (d > 10) println("Larger than 10") 选择一个适合你风格的. 对于具有多个绑定的表达式,分号的[大多数]通常使用是简单的. for(i <- 1 to 4; j <- 1 until i) println(f"$j < $i") 顺便说一句,也可以重构为无分号版本: for{i <- 1 to 4 j <- 1 until i} println(f"$j < $i") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |