zoukankan      html  css  js  c++  java
  • 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 })
  • 相关阅读:
    第二周学习小结
    第一周小结(^_^)
    VS2010和搜狗快捷键冲突
    解除SQL远程编辑表
    SQLServer2005mssqlserver服务与sqlexpress服务有什么区别
    OEA界面生成学习1 总体浏览
    WPF学习:绑定
    OutLook自动存档
    文件目录学习
    AQTime
  • 原文地址:https://www.cnblogs.com/happyframework/p/4199286.html
Copyright © 2011-2022 走看看