1.定义变量

  Scala的变量分为两种,val和var。

  val跟java的final变量类似,一旦初始化就不能被重新赋值。

  var类似于java的非final变量,在整个生命周期内var可以被重新赋值。

  示例

    var  greeting :String = “hello world!”;

  Scala并不是和java一样在变量名之后给出类型,而是在变量名后,变量名和类型之间用冒号(:)隔开。

  我们还可以这样写

    var greeting = “hello world!”;

  这里并没有声明变量的类型,因为Scala具有类型判断的能力,可以不显式指定类型。

2.定义函数

  函数定义由def开始,然后是函数名和圆括号中以逗号隔开的参数列表。

          函数名          参数列表            返回结果类型

  def    max    (x :Int , y :Int )  :   Int  =  {

    //函数内容

  }

  如果函数只有一条语句,也可以选择不是使用花括号。

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

  下面是不接收任何参数也不返回任何有意义的结果的函数

    def greet() = println(“hello world”);

  返回结果是Unit,类似于java中的void,表示该函数并不返回任何由实际意义的结果。

3.函数式编程风格

  Scala允许采用指令式编程,但是鼓励采用函数式编程风格。

  两种编码风格有什么差异呢?

  一个显著性的标志式如果代码包含任何var变量,它通常是指令风格的,比如JAVA C++ C

  而代码完全没有var,只包含了val,那么它可能是函数式的。

  例如

    

def printArgs(args:Array[String]):Unit {
var i = 0;
while(i<args.length){
println(args(i));
i+=1;
}
}
//这个是典型的指令式编程
//我们可以去掉上述代码中的var,转换成函数式编程
def printArgs(args:Array[String]):Unit {
for(arg<-args)
println(arg);
}

  使用函数式编程跟指令式编程相比较,更清晰精简,也更少出错。

  但是Scala并没有强制你去使用函数式风格来编程,Scala式指令式/函数式混合类型的语言。

【scala】定义变量和函数的更多相关文章

  1. Scala基础:定义变量和逻辑判断语句以及方法和函数

    定义变量和逻辑判断语句 package com.zy.scala import scala.collection.immutable object ScalaDemo { def main(args: ...

  2. Scala 基础(1)—— 定义变量 & 定义函数

    1. 使用 val & var 定义变量 Scala 中的变量被分为2种:val 和 var.其含义于 Java 中的 final 关键字类似. val 等同于被 final 修饰过的变量, ...

  3. 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数

    4.    Scala基础 4.1.   声明变量 package cn.itcast.scala object VariableDemo {   def main(args: Array[Strin ...

  4. jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}

    笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...

  5. 【Python基础学习二】定义变量、判断、循环、函数基本语法

    先来一个愉快的Hello World吧,就是这么简单,不需要写标点符号,但是需要严格按照缩进关系,Python变量的作用域是靠tab来控制的. print("Hello World" ...

  6. MFC 如何在一个类中使用在其他类中定义的变量或函数

    [声明:本文的知识点来源于网络,参考网址:https://blog.csdn.net/bill_ming/article/details/7407848] [以下三种方法亲测有效,可以根据具体情况来选 ...

  7. Spark记录-Scala程序例子(函数/List/match/option/泛型/隐式转换)

    object func { def main(args:Array[String]):Unit={ //函数赋值给变量时, 必须在函数后面加上空格和下划线. def sayHello(name: St ...

  8. scala面向对象.高阶函数,柯里化,Actor编程简介

    1.定义一个类 class Person{ //用val修饰的变量是只读属性,有getter但是没有setter val id ="111" //用var修饰的变量既有getter ...

  9. Scala的控制结构和函数

    控制结构和函数 先看以下简单的一个条件表达式的demo object TestConditional { def main(args: Array[String]): Unit = { // scal ...

随机推荐

  1. 安装RabbitMQ3.6.10报错:{error,{missing_dependencies,[crypto,ssl],

    参考https://blog.csdn.net/u010739551/article/details/80848993 如果安装上篇博文安装则可避免这种情况 CentOS6.7安装RabbitMQ3. ...

  2. nodejs升级的两种方法

    方法一: 用n升级nodejs # 全局安装n$ npm install -g n# 升级到最新稳定版$ n stable # 升级到最新版$ n latest# 升级到定制版$ n v7.10.0# ...

  3. Java-idea-创建maven项目,部署项目,部署服务器,简单测试

    spring-boot项目创建 1.项目创建 使用Idea,File→Project→Spring initalizr,点击next,进行基本配置.此时 一个spring boot项目创建完成. 之后 ...

  4. Delphi 正则表达式语法(5): 边界

    Delphi 正则表达式语法(5): 边界 // \b 单词边界 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg ...

  5. netstat 与 telnet

    在网络方面我们常常会用到如下命令: (1)ping命令:我们常常用来判断2台或2台以上的机器间是否网络连通. ping 192.168.1.88 -t 如果想看任何命令的参数是什么意思,我们只需要:命 ...

  6. Spring MVC 了解WebApplicationContext中特殊的bean类型

    Spring MVC 了解WebApplicationContext中特殊的bean类型 Spring的DispatcherServlet使用了特殊的bean来处理请求.渲染视图等,这些特定的bean ...

  7. NIO复习01

    NIO 概述: 1. Java NIO 由以下几个核心部分组成:Channels       Buffers           Selectors 2. 主要Channel的实现:FileChann ...

  8. vue移动端 滚动 鼠标按下效果

    <div class="item" :id="item.RowID" @touchstart="touchstart(item.RowID)&q ...

  9. Javascript中类型: undefined, number ,string ,object ,boolean

    var a1; var a2 = true;var a3 = 1;var a4 = "Hello";var a5 = new Object();var a6 = null;var ...

  10. 20145109《Java程序设计》第二周学习总结

    20145109 <Java程序设计>第二周学习总结 教材学习内容总结 Variable : naming rule : Camel case no default value e.g : ...