文档章节

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")
  }
}

 

© 著作权归作者所有

共有 人打赏支持
我是菜鸟我骄傲
粉丝 12
博文 217
码字总数 137995
作品 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
904
2
大数据学习资源整理

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

jacksu
2016/02/25
95
0
如何成为云计算大数据Spark高手

Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位; 要想...

Spark亚太研究院
2014/06/13
1K
3
在Google App Engine上创建你的Java/Scala项目

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

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

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

超人学院
2016/03/03
163
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内存模型是怎么解决缓存一致性的?

在再有人问你Java内存模型是什么,就把这篇文章发给他。这篇文章中,我们介绍过关于Java内容模型的来龙去脉。 我们在文章中提到过,由于CPU和主存的处理速度上存在一定差别,为了匹配这种差距...

Java填坑之路
17分钟前
1
0
vue-cli 3.0 初体验

最近复习了下vue,突然发现vue-cli已经更新到3.0版本了,并且变化蛮大,看来要不停的学习,真是一入前端深似海。 安装步骤: 1、全局安装 npm install -g @vue/cli Vue CLI 的包名称由 vue-...

tianyawhl
19分钟前
0
0
Angular进阶之路

【初级】会写页面,能出东西。 给定环境和 rest API,不用第三方库,能在十分钟内完成一个 master/detail 结构的带路由的应用(可以不管美观)。 知识点:Angular CLI、组件、路由、HTTP 服务...

陆小七的主页
21分钟前
0
0
Redis缓存数据库安全加固指导(一)

背景 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,参考2018年国外数据库技术权威网站DB-Engines关于key-value数据库流行度排名,Redis暂列第一位,但是原生...

中间件小哥
21分钟前
0
0
百万级数据mysql分区

1. 什么是表分区? 表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。 2. 表分区与分表的区别 分表...

罗文浩
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部