• Scala:First Steps in Scala


    var and val

    简单来说,val声明的变量可以重新修改其引用,val则不行,见下面的例子:

     1 def max(x: Int, y: Int): Int = {
     2   if(x > y) x else y 
     3 }
     4 
     5 def max(x: Int, y: Int): Int =  if(x > y) x else y 
     6 
     7 var list = Array(1, 2, 3)
     8 list.foreach(x => println(x))
     9 
    10 for(x <- list) {
    11   println(x)
    12 }
    13 
    14 def test(fun: (Int, Int) => Unit): Unit = {
    15   fun(5, 6)
    16 }
    17 
    18 def printlnXY(x: Int, y: Int): Unit = {
    19   println(x)
    20   println(y)
    21 }
    22 
    23 test(printlnXY)
    24 
    25 test((x, y) => {
    26   println(x)
    27   println(y)
    28 })

    采用后缀类型声明法的原因是Scala支持类型推断,这样后面的类型声明在大多数情况下是可以忽略的。

    Define some function

    基本语法

    1 def max(x: Int, y: Int): Int = {
    2   if(x > y) x else y 
    3 }

    如果方法只包含一行代码,则可以这样写:

    1 def max(x: Int, y: Int): Int =  if(x > y) x else y 

    Iterate with foreach and for

    1 var list = Array(1, 2, 3)
    2 list.foreach(x => println(x))

    语法感觉非常亲切(类似C#)。有点委托、匿名方法和Lamda表达式的味道。

     1 def test(fun: (Int, Int) => Unit): Unit = {
     2   fun(5, 6)
     3 }
     4 
     5 def printlnXY(x: Int, y: Int): Unit = {
     6   println(x)
     7   println(y)
     8 }
     9 
    10 test(printlnXY)
    11 
    12 test((x, y) => {
    13   println(x)
    14   println(y)
    15 })
  • 相关阅读:
    正则表达式
    移动开发知识点收集
    SQL Server
    百度数据图表插件Echarts
    Xamarin
    Func与Action
    MVC Core
    利用 async & await 的异步编程
    CSS3
    [leetcode]374. Guess Number Higher or Lower
  • 原文地址:https://www.cnblogs.com/happyframework/p/4199286.html
Copyright © 2020-2023  润新知