【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语言中入口函数,即从此处开始运行。
相关推荐
Js_cold8 小时前
Verilog宏define
fpga开发·verilog
迎风打盹儿15 小时前
一种无需IP核的FPGA RAM初始化方法:基于源码定义与赋值实现
fpga开发·verilog·vivado·ram·rom
bnsarocket2 天前
Verilog和FPGA的自学笔记8——按键消抖与模块化设计
笔记·fpga开发·verilog·自学·硬件编程
萧霍4 天前
判断两个对象是相等的
scala
bnsarocket4 天前
Verilog和FPGA的自学笔记9——呼吸灯
笔记·fpga开发·verilog·自学·硬件编程
程序员小羊!6 天前
Flink(用Scala版本写Word Count 出现假报错情况解决方案)假报错,一直显示红色报错
flink·word·scala
ALINX技术博客7 天前
算力跃升!解析可嵌入整机的 6U VPX 异构高性能射频信号处理平台 AXW23
射频工程·fpga·基带工程
简简单单做算法8 天前
【第1章】基于FPGA的图像形态学处理学习教程——目录
fpga·图像形态学处理·膨胀·腐蚀·开运算·闭运算
云雾J视界8 天前
RISC-V开源处理器实战:从Verilog RTL设计到FPGA原型验证
fpga开发·开源·verilog·risc-v·rtl·数字系统
做一个快乐的小傻瓜8 天前
易灵思FPGA的RISC-V核操作函数
fpga·risc-v·易灵思