日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快学Scala 第二课 (apply, if表达式,循环,函数的带名参数,可变长参数,异常)...

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快学Scala 第二课 (apply, if表达式,循环,函数的带名参数,可变长参数,异常)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

apply方法是Scala中十分常見的方法,你可以把這種用法當做是()操作符的重載形式。

像以上這樣伴生對象的apply方法是Scala中構建對象的常用手法,不再需要使用new。

?if 條件表達式的值就是跟在if或else之后的表達式的值,如果兩者類型不同,選擇各分支類型的公共超類型作為返回類型。

??if(x>1) 1 相當于?if(x>1) 1 else ()?

你可以把()當做是表示“無有用值”的占位符,將Unit當做Java的Void

如果你在寫較長的語句,需要分行來寫的話, 要確保第一行以一個不能用做語句結尾的符號結尾。通常來說一個比較好的選擇是操作符:

?"aa" + "bb"?

+ "cc" //這樣解析器會報錯

"aa" + "bb" +?

"cc" //這樣才是正確的

Scala表達式用{}, 最后一個表達式的值就是塊的值。

Scala循環while和for:

val a = for (i <- 1 to 10) ?{ i }

val b = for (i <- 1 until 10) ?{ i }

Scala break:

import scala.util.control.Breaks._object BreakDemo {def main(args: Array[String]): Unit = {breakable {for(i <- 1 to 10){break}}} }

Scala for推導式,返回一個Vector集合

// Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)val a = for (i <- 1 to 10) yield { i }

Scala函數的帶名參數

def decorate(atr: String, left: String = "[", right: String = "]") = {left + atr +right}decorate("Hello", right = ">>>]")

Scala變長參數

def writeName(name: String*) = {for (n <- name) {println(n)}}val se = Array("aa", "bb", "cc")writeName(se: _*)

當val被聲明為lazy時,初始化被推遲,知道第一次取值的。

Scala異常

package com.citi.Lscalaobject FunDemo {def main(args: Array[String]): Unit = {try {// Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)val a = for (i <- 1 to 10) yield { i }println(a)println(decorate("Hello", ">>>]"))val b = -10println(checkValue(b).getClass())println(decorate("Hello", right = ">>>]"))println(1 to 5)val se = Array("aa", "bb", "cc")writeName(se: _*)} catch {case t: Throwable => t.printStackTrace()case _: Exception => println("Exception")} finally {println("do finally")}}def checkValue(x: Int) = {if(x>1) 1 else ()}def decorate(atr: String, left: String = "[", right: String = "]") = {left + atr +right}def writeName(name: String*) = {for (n <- name) {println(n)}}}

?

轉載于:https://www.cnblogs.com/AK47Sonic/p/7255600.html

總結

以上是生活随笔為你收集整理的快学Scala 第二课 (apply, if表达式,循环,函数的带名参数,可变长参数,异常)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。