scala编程学习笔记(1)变量定义函数定义

scala编程学习笔记(一)变量定义函数定义

变量定义:

val:类似java中final类型的变量

  • 1,基本格式:val 变量名:变量类型 = 值
  • 2,其中有时变量类型可以省略,可以自动识别
  • 3,变量不能赋值,修改

var :等同于java中的非final型变量

val msg: java.lang.String = "Hello World String"
println("msg: " +msg)

var msgVar: java.lang.String = "Hello World String"
println("msgvar: " +msgVar)
msgVar = "Hello World String  new value"
println("msgvar:" + msgVar)

结果应该为

msg: Hello World String
msgvar: Hello World String
msgvar:Hello World String  new value

函数定义

函数格式:

def 函数名(参数列表,...):返回结果类型={},下面给出一个max函数

def max(a: Int,b: Int):Int ={
if(a > b) 
  a
else 
  b
}

var maxValue = max(6,10)
println("max(6, 10) the max maxValue is :" + maxValue )
println("max(6, 10) the max is :" + max(6,10) )

返回结果是较大的值

max(6, 10) the max maxValue is :10
max(6, 10) the max is :10

1,有时函数必须制定返回结果类型,如函数时递归,就必须明确制定返回结果类型

2,在max这里例子中及时不写返回结果,编译器也能推断,如实这个函数就 编程如下的样子,作用功能都没有变化

def max2(a: Int,b: Int)={
    if(a > b) 
      a
    else 
      b
  }

3,如果函数仅 一个语句,连花括号都可以不写。如是max函数就成了这样,作用功能仍然没有变化

def max3(a: Int,b: Int)=if(a > b) a else b

些到这里的时候老子真想来一句what a fuck function ,碎了一地啊。

接下来,是一个既不传参,也不返回有用结果的函数的定义,据说解析器返回

greeting():Unit,其中Unit值得时greetin的返回类型,类似于Java的void类型,而且Java中的void类型会被映射成Unit

  def greeting()=println{"no args no return?"}
  greeting()
  greeting

but调用,卧槽,这都可以啊,结果两个都返回

no args no return?
no args no return?