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 })
  • 相关阅读:
    计算机组成原理学习总纲图
    USE RED
    既有的问题如何解决
    字符串极值题解
    扩展 KMP
    KMP
    FHQ-Treap
    STL
    iOS内存管理理论知识过一遍
    iOS中Block理论知识过一遍
  • 原文地址:https://www.cnblogs.com/happyframework/p/4199286.html
Copyright © 2011-2022 走看看