文档章节

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
博文 218
码字总数 138040
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

wordpress 汉化

在 wp-config.php 添加 define('WPLANG','zh_CN'); 在后台,更新 now ,即可。

james_laughing
22分钟前
0
0
Android JNI开发系列(十一) JNI 访问父类的构造方法和父类实例方法

JNI 访问父类的构造方法和父类实例方法 构造方法和父类实例方法 先看一段Java代码, Java package org.professor.jni.animal;import android.util.Log;public class Animal {protecte...

蔡小鹏
29分钟前
1
0
腾讯投资最高1.75亿美元正式进军菲律宾移动支付市场

菲律宾长途电话公司(PLDT)公司今日宣布,中国互联网巨头腾讯和私募股权公司KKR将获得该公司旗下金融科技公司Voyager Innovations的少数股权。 PLDT在一份声明中称:“腾讯和KKR最多将分别收...

linuxCool
56分钟前
2
0
正则介绍及grep/egrep用法

10月16日任务 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下 扩展 把一个目录下,过滤所有*.php文档中含有eval的行 grep -r --include="*.php" 'eval' /data 正则介绍 正则就是一串有规律的字符...

hhpuppy
今天
3
0
J2Cache 中使用 Lettuce 替代 Jedis 管理 Redis 连接

一直以来 J2Cache 都是使用 Jedis 连接 Redis 服务的。Jedis 是一个很老牌的 Redis 的 Java 开发包,使用很稳定,作者维护很勤勉,社区上能搜到的文章也非常非常多。算是使用范围最广的 Redi...

红薯
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部