scala " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Scala涓浣曚娇鐢ㄥ亸鍑芥暟

扬州沐宇科技
2024-04-20 12:19:15
scala

鍦⊿cala涓娇鐢ㄥ亸鍑芥暟鍙互閫氳繃瀹氫箟涓€涓嚱鏁板瓧闈㈤噺锛屽苟浣跨敤PartialFunction绫诲瀷鏉ヨ〃绀恒€備互涓嬫槸涓€涓畝鍗曠殑绀轰緥锛?/p>

// 瀹氫箟涓€涓亸鍑芥暟锛屽彧澶勭悊鍋舵暟
val isEven: PartialFunction[Int, String] = {
  case x if x % 2 == 0 => s"$x is even"
}

// 浣跨敤鍋忓嚱鏁?/span>
println(isEven(2)) // 杈撳嚭: 2 is even
println(isEven(3)) // 鎶涘嚭MatchError寮傚父

鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑瀹氫箟浜嗕竴涓亸鍑芥暟isEven锛屽畠鍙鐞嗗伓鏁板苟杩斿洖鐩稿簲鐨勫瓧绗︿覆銆傛垜浠彲浠ヤ娇鐢?code>isDefinedAt鏂规硶鏉ユ鏌ユ煇涓€兼槸鍚﹀湪鍋忓嚱鏁扮殑瀹氫箟鍩熷唴锛屼粠鑰岄伩鍏嶆姏鍑?code>MatchError寮傚父銆?/p>

// 浣跨敤isDefinedAt鏂规硶妫€鏌ュ€兼槸鍚﹀湪瀹氫箟鍩熷唴
println(isEven.isDefinedAt(2)) // 杈撳嚭: true
println(isEven.isDefinedAt(3)) // 杈撳嚭: false

鍙﹀锛屾垜浠篃鍙互浣跨敤collect鏂规硶鏉ュ簲鐢ㄥ亸鍑芥暟鍒颁竴涓泦鍚堜笂锛屽彧澶勭悊鍦ㄥ亸鍑芥暟瀹氫箟鍩熷唴鐨勫厓绱犮€?/p>

val numbers = List(1, 2, 3, 4, 5)

// 浣跨敤collect鏂规硶搴旂敤鍋忓嚱鏁?/span>
val evenNumbers = numbers.collect(isEven)
println(evenNumbers) // 杈撳嚭: List(2 is even, 4 is even)

扫码添加客服微信