【Scala】 2. 函数

2. 函数

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

2.1 for循环

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

(1) to的用法

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

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

打印出的结果如下:

shell 复制代码
e[0] = 1
e[1] = 2
e[2] = 3
e[3] = 4
e[4] = 5
e[5] = 6
(2) until的用法

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

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

打印出的结果如下:

shell 复制代码
e[0] = 1
e[1] = 2
e[2] = 3
e[3] = 4
e[4] = 5

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

2.2 函数

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

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

包含return值和返回值类型

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

包含return关键字

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

啥都省下来。

注:

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

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

scala 复制代码
	def main(args: Array[String]): Unit = {  
	  val a = 8;  
	  println(f"$a%d + 3 = " + sum(a))
	}
  • apply函数为一类特殊的函数,可在object和class中通过object名或class名的方式直接调用,举例如下:
scala 复制代码
object func {  
  def main(args: Array[String]): Unit = {  
	// 调用func object对象中的apply函数  
    func()  
  }  
  
  def apply() = {  
    println ("apply func test")  
  }
  • object对象中的main函数为scala语言中入口函数,即从此处开始运行。
相关推荐
FPGA-ADDA1 小时前
第二篇:RFSoC芯片架构详解——处理系统(PS)与可编程逻辑(PL)
嵌入式硬件·fpga开发·信号处理·fpga·47dr
小冯不疯9 小时前
金蝶云星空与轻易云集成平台数据对接方案
全文检索·scala
howard20052 天前
1.6.2 掌握Scala数据结构 - 列表
scala·不可变列表·可变列表
FPGA小迷弟2 天前
FPGA工程师面试题汇总(二十五)
网络协议·tcp/ip·fpga开发·verilog·fpga
通信小呆呆2 天前
噪声体制近程雷达信号处理:从理论推导到SoC系统实现
信号处理·fpga·雷达·噪声雷达
FPGA小迷弟3 天前
FPGA工程师面试题汇总(二十四)
网络协议·tcp/ip·fpga开发·verilog·fpga
北城笑笑4 天前
Frontend 与 FPGA 深度融合实战解析:从技术协同到多场景落地( 前端和现场可编程门阵列 )
前端·websocket·3d·vue·fpga
XINVRY-FPGA6 天前
XC7VX485T-2FFG1157I Xilinx Virtex-7 FPGA
arm开发·嵌入式硬件·fpga开发·硬件工程·fpga
FPGA-ADDA7 天前
第五篇(下):智能无线电与6G候选技术——从机器学习到通感一体化
人工智能·机器学习·信号处理·fpga·通信系统
howard20057 天前
1.6.1 掌握Scala数据结构 - 数组
scala·定长数组·变长数组