Scala常用代码

遍历

var arr = Array("001a", "001b", "002a")
for (a <- arr) {
    print(a + " ")
}
println()
for (i <- 0 to arr.length - 1) {
    print(arr(i) + " ")
}
println()
for (i <- 0 until arr.length) {
    print(arr(i) + " ")
}

过滤

如果想过滤出以”b”结尾的元素,可以这样:
for (a <- arr) {
    if (!a.endsWith("b")) {
      print(a + " ")
    }
}
其实可以更简单:
for (a <- arr if !a.endsWith("b")) {
    print(a + " ")
}
如果还只想要以”001”开头:
var arr = Array("001a", "001b", "002a")
for (a <- arr if !a.endsWith("b"); if a.startsWith("001")) {
    print(a + " ")
}

嵌套循环

for (i <- 0 to 2; j <- 1 to 3 if i != j) {
    print(i * 10 + j)
    print(" ")
}
//1 2 3 12 13 21 23

构造新集合

以上的例子都只是遍历完后就释放,除此之外,还可以创建一个值去记录每一次的迭代,只要在for表达式之前加上关键字yield。
val c = Array(2, 4, 5)
val result = for (elem <- c) yield elem * 2
println(Arrays.toString(result)) //[4, 8, 10]

异常

抛出异常:
val half =
    if (arg % 2 == 0) arg / 2
    else throw new RuntimeException()
捕获异常:
try {
    val a = if (false) 1 else throw new IllegalArgumentException("null")
} catch {
    case e: IllegalArgumentException => println(e.getMessage)
    case e: Exception => println(e.getMessage)
} finally {
    println("finally")
}
try-catch-finally也有产生值,返回的结果是,如果没有异常抛出,则对应于try字句;如果抛出异常并被捕获,则对应与相应的catch字句。如果异常被抛出但没有被捕获,表达式就没有返回值。由finally字句计算得到的值,即使有也会被抛弃。

例如,如果函数有如下定义:
     def f() : Int = try ( return 1 ) finally ( return 2 )
     def g() : Int = try ( 1 ) finally ( 2 )
调用个f()会返回2,调用g()会返回1。

match表达式

Scala的match表达式类似与Java中的switch语句。
val arg = "a"
arg match {
    case "a" => println("a")
    case "b" => println("b")
    case _ => println("default")
}
Scala用”_”作为占位符表达位置值的通配符。每个case中并没有break,因为break是隐含的,即不允许从上一个case落入到下一个里面去。而且与Java的switch相比,match表达式还可以产生值。
val arg = "a"
val num =
    arg match {
        case "a" => 1
        case "b" => 2
        case _ => 0
    }
Scala不再使用break和continue,需要用额外的变量做流程控制。

在VSCode中,有一些插件可以提供Scala代码补全功能。其中一些常用的插件包括: 1. Scala (Metals):这是一个提供全面Scala支持的插件,包括代码补全、语法高亮、重构等功能。它使用Metals作为后端,可以提供快速的代码补全和导航功能。 2. Scala Syntax (official):这是官方提供的Scala语法高亮插件,可以帮助你更好地阅读和理解Scala代码。 3. Scala IDE:这是一个功能强大的Scala开发环境插件,提供了代码补全、调试、重构等功能。它基于Eclipse平台,适用于那些熟悉Eclipse的开发者。 4. Scala Code Runner:这个插件可以帮助你在VSCode中运行Scala代码,并提供一些调试功能。 以上是一些常用Scala代码补全插件,你可以根据自己的需求选择适合的插件来提高开发效率。\[1\]\[3\] #### 引用[.reference_title] - *1* *2* [vscode 好用的插件推荐](https://blog.csdn.net/qq_43603289/article/details/126426040)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [一些提高开发效率的VSCode必备插件(分享),vscode代码补全插件](https://blog.csdn.net/weixin_34649252/article/details/117118327)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值