当前位置: 首页 > article >正文

【Scala】 2. 函数

2. 函数

scala运算符、if … else …两部分和C语言类型,这里不再赘述,这里从for循环开始讲讲scala和c/c++的不同之处。

2.1 for循环

scala中主要包含to和until两个关键字,下面分别看看两者的用法,看例子就行了。

(1) to的用法

scala的例子使用to关键字如下:

var e = 0;  
for (e <- 0 to 5) {  
  println(f"e[$e%d] = " + (e + 1))  
}

打印出的结果如下:

e[0] = 1
e[1] = 2
e[2] = 3
e[3] = 4
e[4] = 5
e[5] = 6
(2) until的用法

scala的例子使用to关键字如下:

var e = 0;  
for (e <- 0 until 5) {  
  println(f"e[$e%d] = " + (e + 1))  
}

打印出的结果如下:

e[0] = 1
e[1] = 2
e[2] = 3
e[3] = 4
e[4] = 5

该结果和C语言中使用的方式是一致的。

2.2 函数

和c语言类似,基本可以作为参考,智能在于可以直接不写访问值和return关键字实现,下面举例说明。

(1)完整的实现方式
	// first way:  
	def sum(a: Int, b: Int): Int = {  
	    return (a+b)  
	}

包含return值和返回值类型

(2)不包含返回值类型
	// second way:  
	def sum(a: Int, b: Int): Int = {  
	    return a+b  
	}

包含return关键字

(3)不包含返回值类型和return关键字
	// third way:  
	def sum(a: Int, b: Int) = {  
		a+b  
	}

啥都省下来。

注:

  • 函数值包含缺省值,直接在变量后添加,举例如下:
	// third way:  
	def sum(a: Int, b: Int = 1) = {  
		a+b  
	}

此时调用时若需要采用缺省值,变量b可以不赋值。

	def main(args: Array[String]): Unit = {  
	  val a = 8;  
	  println(f"$a%d + 3 = " + sum(a))
	}
  • apply函数为一类特殊的函数,可在object和class中通过object名或class名的方式直接调用,举例如下:
object func {  
  def main(args: Array[String]): Unit = {  
	// 调用func object对象中的apply函数  
    func()  
  }  
  
  def apply() = {  
    println ("apply func test")  
  }

  • object对象中的main函数为scala语言中入口函数,即从此处开始运行。

http://www.kler.cn/a/233334.html

相关文章:

  • SpringBoot实战(三十一)集成iText5,实现RSA签署PDF
  • C++STL容器——map和set
  • WebAssembly在现代Web开发中的应用
  • 【121. 买卖股票的最佳时机】——贪心算法/动态规划
  • 「Py」Python基础篇 之 Python都可以做哪些自动化?
  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • containerd中文翻译系列(十)镜像验证
  • 《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(11)
  • Python学习路线 - Python高阶技巧 - PySpark案例实战
  • Javaweb之SpringBootWeb案例之异常处理功能的详细解析
  • C#中的浅度和深度复制(C#如何复制一个对象)
  • 深度学习技巧应用36-深度学习模型训练中的超参数调优指南大全,总结相关问题与答案
  • UI自动化之Poco常用断言方式
  • RCE(命令执行)知识点总结最详细
  • [day0] 借着“ai春晚”开个场
  • 单片机学习笔记---LED点阵屏显示图形动画
  • 从零开发短视频电商 Tesseract OCR 的 Java 拓展库 javacpp-presets
  • 计算机网络(第六版)复习提纲25
  • Windows 远程桌面提示没有远程桌面授权服务器可以提供许可证
  • Unity3D实现项目限制功能(使用次数限制和时间限制)
  • 【C++】引用与内联
  • 【Flink】SQL-CLIENT中出现 Could not find any factory for identifier ‘kafka‘
  • 5 scala的函数式编程简介
  • 【QT】Graphics View绘图架构
  • 【Redis】深入理解 Redis 常用数据类型源码及底层实现(3.详解String数据结构)
  • Vue源码系列讲解——虚拟DOM篇【二】(Vue中的DOM-Diff)