Scala——Scala函数入门

mac2025-03-18  12

文章目录

主要内容一、方法的定义和使用1. 方法的定义2.示例代码: 二、默认参数的使用1. 概念2. 示例代码 三、命名参数的使用(不推荐使用)1. 示例代码 四、可变参数1. 示例代码 五、条件表达式1. 示例代码六、循环表达式1. 种类2. 示例代码3.注意

主要内容

方法的定义和使用默认参数的使用命名参数的使用可变参数的使用条件表达式循环表达式

一、方法的定义和使用

1. 方法的定义

def 方法名(参数名:参数类型): 返回值类型 = { // 括号内的叫做方法体 // 方法体内的最后一行为返回值, 不需要使用return }

def min(x: Int, y: Int): Int = { if(x > y) y else x }

2.示例代码:

object Scala_Function { def main(args: Array[String]): Unit = { println(add(5,4)) println(three()) println(three) // 如果函数没有入参可以不写(),不推荐 HelloWorld() HelloWorld } def add(x: Int, y: Int):Int ={ x + y } def three() = 1 + 2 // Unit 表示 无返回值 def HelloWorld(): Unit ={ println("Hello World!") } }

输出结果:

二、默认参数的使用

1. 概念

在函数定义时,允许指定参数的默认值

2. 示例代码

object Scala_Function2 { def main(args: Array[String]): Unit = { sayHello() sayHello("Hello World") } def sayHello(name: String = "Hello"): Unit ={ println(name) } }

输出结果:

三、命名参数的使用(不推荐使用)

1. 示例代码

object Scala_Function3 { def main(args: Array[String]): Unit = { sayHello("小红",18) sayHello(name = "小明",age = 18)// 命名参数的使用 } def sayHello(name: String, age: Int): Unit ={ println("名字:"+name, "年龄:"+age) } }

输出结果:

四、可变参数

1. 示例代码

object Scala_Function4 { def main(args: Array[String]): Unit = { println(sum(1)) println(sum(1,2)) println(sum(1,2,3)) } // Int*号声明numbers为整数类型的可变参数 def sum(numbers: Int*): Int ={ var result = 0 for (number <- numbers) result += number result } }

输出结果:

五、条件表达式

1. 示例代码

object Scala_Function5 { def main(args: Array[String]): Unit = { val x = 1 // val 声明一个常量 var a = if(x > 0) true else false // var声明一个可变的量 println(a) } }

输出结果:

六、循环表达式

1. 种类

toRangeuntilforforeachwhile

2. 示例代码

object Scala_Function6 { def main(args: Array[String]): Unit = { println(1 to 10) println(1 until 10) println(Range(1,10)) println("------to until Range---------") // 1 to 10 是 [1,10] // Range(1,10) 和 1 until 10 是 [1,10) // to 和 until 在底层调用的都是Range print("1 to 10 = ") for( i <- 1 to 10) { print(i + " ") } println() print("Range(1,10) = ") for(i <- Range(1, 10)){ print(i+" ") } println() print("1 until 10 = ") for(i <- 1 until 10){ print(i+" ") } println() print("1.to(10) = ") for(i <- 1.to(10)){ print(i+" ") } println() print("1.until(10) = ") for(i <- 1.until(10)){ print(i+" ") } println() print("带有步长(step = 2)的Range = ") for(i <- Range(1, 10, 2)){ print(i+" ") } println() println("------for and foreach--------") val names = Array("Bob","John","Scala") println("foreach: ") names.foreach(name => print(name+" ")) println() println("for: ") for(a <- names){ print(a+" ") } println() println("--------while-------") var (number, sum) = (100, 0) while(number > 0){ sum += number number -= 1 } print(sum) } }

输出结果:

3.注意

1 to 10 是 [1,10]Range(1,10) 和 1 until 10 是 [1,10)to 和 until 在底层调用的都是Range
最新回复(0)