scala函数定义的几种方法

scala看了有几天了,也试着写了“Hello World”,今天试着练习伴生对象的时候,突然搞不明白scala伴生对象中定义的函数,并不能按我的想法工作。
scala真是个非常灵活的语言,这里还是总结下函数定义的几种情况吧。
1、规规矩矩的写法,带有等号、大括号和返回值类型的形式
def myFunc(var p1 : Int) : Int = {
    //something
}
def myFunc(var p1 : Int) : Unit = {
    //something
}
2、非unit返回值的情形下,省略返回值,让程序根据代码块,自行判断。注意,这里等号还是要的
def myFunc(var p1 : Int) = {
    //something
}
3、unit返回值的情况下,直接省略返回值类型和等号
def myFunc(var p1 : Int) {
    //something
    // return unit
}
4、函数只有一行的情形下省略返回值和大括号
def max2(x: Int, y: Int) = if (x > y) x else y
def greet() = println("Hello, world!")
也就这么多情况了吧,再遇到新的情况再补充吧,太灵活了,我这死脑子还是玩不转
时间: 2024-08-26 00:11:10

scala函数定义的几种方法的相关文章

c++学习笔记之基础---类内声明函数后在类外定义的一种方法

在C++的“类”中经常遇到这样的函数, 返回值类型名 类名::函数成员名(参数表){ 函数体.} 双冒号的作用 ::域名解析符!返回值类型名 类名::函数成员名(参数表) { 函数体. } 这个是在类内声明函数后在类外定义的一种方法!如果不加"类名::"的话,编译系统就不会知道你的函数属于哪个类;另外,这样定义函数一定要在类中声明之后,说明它是类的成员函数才可以!在类内声明的时候就不需要::了,直接 返回值类型 函数名(参数表) 就可以了!

王家林亲传《DT大数据梦工厂》第二讲Scala函数定义、流程控制、异常处理入门

你想了解大数据,你想成为年薪百万吗?那你还等着什么,快点来吧!跟着王家林老师学习spark大数据 第二讲主要讲了Scala函数定义.流程控制.异常处理入门 函数定义: 关键字(def) 函数名称 参数(参数名称:参数类型):返回内容类型  =  { 函数体 } 注意: Unit:空的返回内容 Scala结束语是不需要写分号 下面一代码为例: //不带参数 Object  ScalaBasics{ def doWhile(){ var line = “” do{ line = readLine()

二维数组作为函数参数的几种方法

#include <stdio.h> #define N 5 void fun1(int a[N][N]) { int i,j; for (i=0;i<N;i++) { for (j=0;j<N;j++) { if (i>j) { a[i][j]+=a[j][i]; a[j][i]=0; } } } } void fun2(int **a,int m,int n) { int i,j; for (i=0;i<m;i++) { for (j=0;j<n;j++) {

zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法

zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法: zendstudio 时常 无法ctrl+左键 跳转 到函数源 代码 是创建工程的方式造成的,很有可能是把先前存在的工程以file的形式导入, zendstudio 就把工程当作文档来处理了.解决的办法是: 右键点击工程->configure->add php support 然后系统会自动rebuild工程/workspace.至此,问题解决! 如果你想要zendstudio支持javascript的语法高亮和流

几何画板中作函数图像的几种方法

随着社会的发展,现代教学很多的地方都有了多媒体教学,这就需要一些教学软件的辅助了,几何画板就是其中之一.一些老师在使用几何画板的过程中,常常涉及到函数图象的绘制.因此,很多用户对这方面教程是非常的感兴趣的.下面就给大家分享一下几何画板中作函数图像的几种方法? 一.直接法 例1  画函数y=sinx在R上的图象. 操作步骤:单击“图表”菜单下“绘制新函数”f(x)=sinx. 二.轨迹法 例2  画函数y=(1/4)x^2在区间[-2,3]上的图象. 操作步骤: (1)单击“绘图”菜单下“绘制点”

HTTP/1.1协议中共定义了八种方法

HTTP/1.1协议中共定义了八种方法(有时也叫"动作")来表明Request-URI指定的资源的不同操作方式: 1.OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法.也可以利用向Web服务器发送'*'的请求来测试服务器的 功能性,如获取当前URL所支持的方法.若请求成功,则它会在HTTP头中包含一个名为"Allow"的头,值是所支持 的方法,如"GET,POST". 2.HEAD 向服务器索要与GET请求相一致的响应,只不过响应体

求字符串长度函数实现的三种方法

/* Date: 10/03/19 12:49 Description: 求字符串长度函数实现的三种方法*/ #include<stdio.h> int strlen1(char *s);int strlen2(char *s);int strlen3(char *s); int main(void) { char str[]="The function to test my length."; printf("The length1 is:%d\n",

02Scala学习-Scala函数定义、流程控制、异常处理入门实战

一 Scala 函数的定义 按照以下格式定义scala函数. def 函数名称(函数输入参数类型){ //函数的实现提 } 1) 第一个简单的例子 HelloWorld object Test2 { def main(args: Array[String]):Unit = { println("HelloWorld") } } a)可以看到输出语句的结尾没有以“;”结束,因为scala的设计者认为,多大一个字符对开发者来说是痛苦的. 他不太赞成在语句的结束写 “;” , 但你也可以写 

js 函数定义的两种方式以及事件绑定(扫盲)

一.事件(例如:onclick)绑定的函数定义放在jsp前面和放后面没影响 二. 1 $(function() { 2 function func(){}; 3 }) onclick通过如下方式绑定事件到jsp中:onclick = "func();" 由于func()在函数中声明,是局部变量,onclick找不到func(),绑定失败. 三. function func(){}; onclick = "func();" 这样绑定没有问题,因为func()此时是全局