文章目录
主要内容
- 方法的定义和使用
- 默认参数的使用
- 命名参数的使用
- 可变参数的使用
- 条件表达式
- 循环表达式
一、方法的定义和使用
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. 种类
- to
- Range
- until
- for
- foreach
- while
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