Scala——Scala函数入门

主要内容

  1. 方法的定义和使用
  2. 默认参数的使用
  3. 命名参数的使用
  4. 可变参数的使用
  5. 条件表达式
  6. 循环表达式

一、方法的定义和使用

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. 种类

  1. to
  2. Range
  3. until
  4. for
  5. foreach
  6. 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
发布了16 篇原创文章 · 获赞 28 · 访问量 8917

猜你喜欢

转载自blog.csdn.net/NoBuggie/article/details/102852162