文档章节

scala学习第四天

我是菜鸟我骄傲
 我是菜鸟我骄傲
发布于 2017/02/24 07:23
字数 490
阅读 9
收藏 2
package com.learn.scala

/**
  *
  * Scala既是面向对象,也是面向过程的编程语言
  * 函数,方法,过程类似,
  * 函数:不属于任何类,可以在代码内部定义。
  * 方法:属于某个类
  * 过程:没有返回值的函数或方法
  * Created by zhuqing on 2017/2/23.
  */
object Day5Fucntion {
  def main(args: Array[String]): Unit = {
    println(sum(1, 2)) //返回1+2的和3
    println(times(3)) //返回3的2倍6,第二个参数是默认值
    println(times(3, 3)) //返回3的3倍9,第二个参数没有使用默认值,自己设置为3
    println(sumAll(1,2))//返回1到2的和
    println(sumAll(1,2,3))//返回1到3的和
    val a = Array(1,2,3)

    /**
      * 变长参数不能像Java那样直接使用数组,但可在数组后面加上 :_*,告诉编译器你想把数组当序列使用
      */
    println(sumAll(a:_*))

    /**
      * 使用区间时,也要追加:_*
      */
    println(sumAll((1 to 10):_*))

  }

  /**
    * scala方法与Java类似,但是返回值时可以不用return, 最后一个表达式的值为返回值。
    * 也可以不用写返回类型,但是递归时必须写。
    * **我个人觉得的scala不用return可能是担心开发者的方法写的太大,因为如果没有return方法行太多的话容易乱,所以开发者就只能把方法写的短一些。
    *
    * @param a
    * @param b
    * @return
    */
  def sum(a: Int, b: Int) = {
    println("a=" + a)
    println("b=" + b)

    /**
      * 不需要return。
      * 如果想用也可用,建议不要用
      */
    a + b //返回a+b
  }

  /**
    * scala 方法可以设默认参数,类似Flex
    *
    * @param a
    * @param times 默认为2
    * @return
    */
  def times(a: Int, times: Int = 2): Int = {
    println("a=" + a)
    println("times=" + times)
    a * times
  }

  /**
    * scala 方法的变长参数:类型*,
    *
    * @param as
    * @return
    */
   def sumAll(as: Int*): Int = {
    var sum = 0;
    for (a <- as) {
      sum += a
    }
    sum
  }

  /**
    * scala 没有返回值的方法
    * 可以返回Unit=Java中的void
    * def proce(a:Int ,b:Int):Unit={
    * }
    * 也可以什么都不返回
    *   def proce(a:Int ,b:Int){
    *   }
    * @param a
    * @param b
    */
  def procedure(a:Int ,b:Int){
     println("hello world")
  }
}

 

© 著作权归作者所有

共有 人打赏支持
我是菜鸟我骄傲
粉丝 13
博文 225
码字总数 140579
作品 0
西安
架构师
私信 提问
分享一个用Scala Play + Slick 开始写的一个学习的开源web app

好, 最近在學Play,用Play在這些天寫了一個初始的app,用的是Play! framework 2.x + Play slick 1.x,前端用的是,原始的bootstrap。已经开源,https://github.com/hellomaya/scala-connec...

自由之信
2016/01/24
990
2
大数据学习资源整理

github地址 后面继续更新在github utils4s scala语法学习 common库 BigData库 Spark Spark core Spark Streaming Spark SQL Spark 机器学习 Spark 其它 ES 贡献代码步骤 贡献者 utils4s包含各...

jacksu
2016/02/25
95
0
在Google App Engine上创建你的Java/Scala项目

GAE(Google App Engine)是Google推出的服务器托管项目,目前支持Python、Java、Go(为什么没有传说中的G-SPOT?)三种语言。GAE的免费版本有很多限制,但是可是很稀有的可以托管Java项目的服...

戴威
2011/09/06
1K
3
错过安卓,错过IOS,你还想错过大数据吗

错过了当年的安卓,错过了IOS,现在还想错过大数据吗。如今是大数据时代,掌握大数据才能占领制高点,只有掌握大数据技术才能成就高薪人生。亲,还等什么呢,超人学院面授精英班第四期火爆招...

超人学院
2016/03/03
163
0
spark1.2.0版本搭建伪分布式环境

、下载scala2.11.5版本,下载地址为:http://www.scala-lang.org/download/2.11.5.html 2、安装和配置scala: 第一步:上传scala安装包 并解压 第二步 配置SCALAHOME环境变量到bashprofile 第...

stark_summer
2015/02/09
0
2

没有更多内容

加载失败,请刷新页面

加载更多

python实现下载网络图片

项目需求: 有时候我们做爬虫的时候,需要把爬取到的图片资源保存到我们本地,以防爬取的图片链接被原来资源主人变更,所以就需要把好不容易拿到的资源永久变为自己的,就需要把图片链接下载到我们...

银装素裹
22分钟前
1
0
米利型和摩尔型状态机

1. 经典状态机 x(t)为当前输入 z(t)为当前输出 组合逻辑电路输出s(t+1)为次态 状态寄存器(也就是一组触发器)输出s(t)为现态 2. 米利状态机(Mealy) 组合逻辑C1模块有两个输入端:当前输入x(t...

易冥天
24分钟前
3
0
Kafka是如何解决常见的微服务通信问题的

微服务自成立以来就以不同的方式相互沟通。有些人更喜欢使用HTTP REST API,但这些API有自己的排队问题,而有些则更喜欢较旧的消息队列,比如RabbitMQ,它们带有扩展和操作方面的问题。 以K...

java菜分享
27分钟前
0
0
关于php的xdebug配置(编辑器vscode)

虽然说echo和print_r是公认的最实用的调试工具,但是效率真的没有可视化的直接断点那么高。这里简单介绍如果安装及配置xdebug for vscode 一、PHP环境处的配置 1、编译安装 下载及编译php,因...

元谷
41分钟前
7
0
heartbeat

http://www.linux-ha.org/doc/users-guide/_building_and_installing_heartbeat_from_source.html kaer@linux-sqlf:~/Reusable-Cluster-Components-glue--0a7add1d9996> ./configure --enabl......

李有常
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部