`
kane_xie
  • 浏览: 143218 次
社区版块
存档分类
最新评论

Scala入门(一):函数定义

阅读更多
最近在做一个spark项目,顺便分享一下我的scala入门过程。这一系列文章假定读者有一定的java或者其他面向对象编程语言基础。本文主要介绍scala的函数定义。

 

国际惯例,先来一段HelloWorld

object TestScala1 {
  def main(args: Array[String]): Unit = {
    val s = "Hello World!";
    show(s);
  }
  def show(s: String): Unit = {
    println(s)
  }
}

 

 

函数的定义需要关键字def,组成部分有函数名(main),参数名称(args), 参数类型(Array[String]),返回类型(Unit),大括号内是函数体。

 

函数一般都会有返回内容,Unit为空返回值。Unit可以省略。实际上在接触scala时间长了之后你会发现,Scala是一门“能省则省”的语言。比如说每行语句末尾的分号,其实是可写可不写,或者准确的说,Scala是不推荐写分号的,因为没有意义,只是凭空增加了多敲一个键的负担(仁者见仁智者见智)。

 

和Java一样,main函数是程序的主入口,但不同的是,Java的main函数是一个类中的静态函数,但Scala的类中并没有静态函数,所以引入object来持有静态函数。所以请注意我们定义的TestScala1是一个object而不是class。

 

在main函数中我们首先声明一个变量s,val代表常量,var代表变量。由于Scala实现了类型推导,因此不需要声明对象的类型。

 

然后把s传递给函数show,函数的调用与Java类似,但如果函数没有参数的话,调用时可以省略括号(能省则省。。)

 

1
1
分享到:
评论

相关推荐

    第5讲-Scala编程详解:函数入门.rar

    1.函数的定义与调用 2.在代码块中定义包含多行语句的函数体 3. 递归函数与返回类型

    SCALA从入门到精通个人笔记含代码

    函数定义/声明 函数运行机制 递归 函数注意事项和细节 过程 惰性函数和异常 面向对象编程初级 类和对象 包 包对象 面向对象编程中级 封装 继承 多态 面向对象编程高级 伴生对象 特质 嵌套类 类型...

    scala从入门到精通技术教学视频

    24.函数式编程之简化函数定义 25.函数式编程之映射 26.函数式编程之扁平化映射 27.函数式编程之过滤 28.函数式编程之默认排序 29.函数式编程之指定字段排序 30.函数式编程之自定义排序 31.函数式编程之分组 ...

    Scala快速入门

    《快学Scala》从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,...

    Scala入门必看

    Horstmann完全从实用角度出发,给出了一份快速的、基于代码的入门指南。 Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,...

    spark从入门到实战

    11.函数的定义(各种情况下函数定义与使用) 12.函数的作用域、默认参数函数和名称参数函数使用详解 13.变长参数函数和内部函数使用详解 14.匿名函数定义与使用 15.高阶函数定义与使用 16.深入高阶函数的使用 。...

    快学 Scala.pdf

    《快学Scala》从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,...

    scala-2.13.1.tgz

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。 ...

    快学Scala 电子书 pdf

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。

    快学Scala.中文完整版

    《快学Scala》从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,...

    快学Scala PDF扫描版

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。

    《快学Scala》PDF中文版

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。 ...

    快学Scala(中文完整版)

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。

    快学scala第二版中英文.zip

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。...

    快学scala中文

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。

    快学Scala 中文版

    本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。

    functional-data-validation:幻灯片和代码示例,用于讨论功能性思考(以及验证Web表单)

    该演讲是关于使用函数式编程概念设计库代码所涉及的思维过程的入门级讨论。 概述的基本思想过程如下: 定义最小,最简单,最通用的构建基块,我们可以对问题域进行建模。 有些构件是数据,有些则是功能。 定义...

Global site tag (gtag.js) - Google Analytics