/**
* Scala 方法与函数
* Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法
*/
object sayHello { def main(args: Array[String]): Unit = { sayHello("yexj")
printf("\n")
sayHello("yexj", "ben", "fox")
printf("\n")
// 带名参数,可以与不带名的混合使用,也可以调整顺序
sayHello("yxj", lastName = "llast", middleName = "midd")
printf("\n") // 变长参数的使用
val s = sum(1, 2, 4, 5, 6, 7, 8, 9, 34, 3, 2)
printf("the sum is %d", s) printf("\n") // 使用下面这种序列调用函数是不行的,报错
// sum(1 to 5)
// 需要使用到scala特殊的语法,具体为:
val s1 = sum(1 to 5: _*)
printf("the s1 =" + s1)
} // 函数参数
def sayHello(name: String) = {
printf("hello %s,how are you?", name)
name
} // 参数的返回值,不用return,最后的age就是函数返回值,scala会推断出返回值类型
def sayHello(name: String, age: Int) = {
printf("hi %s,your age is %d", name, age)
age
} /**
* 参数带有默认值的
*
* @param firstName
* @param middleName
* @param lastName
*/
def sayHello(firstName: String, middleName: String = "-", lastName: String = "Jerry") = {
printf("firstName=" + firstName + ",middleName=" + middleName + ",lastName=" + lastName)
} /**
* 变长参数,不确定具体有多少个入参值
*
* @param nums
*/
def sum(nums: Int*) = {
var result = 0;
for (num <- nums) {
result += num;
}
result
} }

  

Scala 方法与函数简单记录的更多相关文章

  1. Scala 方法与函数

    Scala 方法与函数:http://www.runoob.com/scala/scala-functions.html Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分 ...

  2. Scala 方法和函数

    package com.bigdata // /** Scala 方法和函数:Scala中既有函数也有方法,大多数情况下我们都可以不去理会他们之间的区别. * * 方法:Scala 中的方法跟 Jav ...

  3. Scala语言学习笔记——方法、函数及异常

    1.Scala 方法及函数区别 ① Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法 ② Scal ...

  4. 学好Spark/Kafka必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数,数组、映射、元组、集合

    前言 Scala是以JVM为运行环境的面向对象的函数式编程语言,它可以直接访问Java类库并且与Java框架进行交互操作.正如之前所介绍,Spark是用Scala语言编写的,Kafka server端 ...

  5. Scala方法定义,方法和函数的区别,将方法转换成函数

    1. 定义方法和函数 1.1. 定义方法 方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归函数,必须指定返回类型 1.2. 定义函数 1.3.方法和函数的区别 在函数式编程语言中,函数是 ...

  6. scala 学习笔记二 方法与函数

    1.介绍 Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法. Scala 中的方法跟 Java 的 ...

  7. scala流程控制语句以及方法和函数

    1.if else表达式 scala中没有三目运算符,因为根本不需要.scala中if else表达式是有返回值的,如果if或者else返回的类型不一样,就返回Any类型(所有类型的公共超类型). 例 ...

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

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

  9. Scala学习笔记(三)—— 方法和函数

    1. 方法 方法使用 def 定义: def 方法名(参数名:参数列表,…) :返回值类型 = { 方法结构体 } scala> def add(x : Int ,y : Int):Int = ...

随机推荐

  1. Linux程序设计学习笔记(独乐乐版)

    在Android的开发过程中经常会遇到Linux相关的问题,为了更彻底的了解Linux准备整点没用的,找到一本 <Linux程序设计>开始系统的学习. 期间记录下自认为重要的内容,本以为是 ...

  2. c++11 std::move()

    简单点理解,c++11 中的std::move() 函数,实际上就是将一个左值强制转换成一个右值引用数据类型,从而可以调用相应的对右值引用重载的函数. 如果使用std::move() 的返回值做为参数 ...

  3. 初始化css样式

    html,body,div,ul,li,ol,a,input,textarea,p,dl,dt,dd{margin:0;padding:0;} ul li{list-style: none;} a{t ...

  4. Java处理图片工具类

    import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...

  5. Linux环境相关

    Linux环境相关 CentOS7网络配置静态ip CentOS7查看ip地址:以前是ifconfig,现在变成了 ip addr 当然这是配置好环境最后的结果,刚装好系统时时没有下面的ens33的相 ...

  6. alert样式优化

    //alert样式优化 function alert(msg, mode) { //mode为空,即只有一个确认按钮,mode为1时有确认和取消两个按钮 msg = msg || ''; mode = ...

  7. cnn知识点汇总

    关于卷积神经网络的入门基础知识: https://blog.csdn.net/weixin_42451919/article/details/81381294   卷积神经网络的相关公式推导: htt ...

  8. NX二次开发-UF_ASSEM_ask_component_data获取装配部件的相关信息

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_assem.h> ], void* user_ ...

  9. NX二次开发-打开文件夹,并同时选中指定文件

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_part.h> #include <at ...

  10. Unity3D中的线程与协程

    线程 Unity3D是以生命周期主线程循环进行游戏开发. Unity3D中的子线程无法运行Unity SDK(开发者工具包,软件包.软件框架)跟API(应用程序编程接口,函数库). 限制原因:大多数游 ...