Scala_3.函数式编程

Scala_3.函数式编程

package com.lius

import com.sun.xml.internal.bind.v2.TODO

/**
 * Scala函数式编程
 */
object functionProgram {

  def arrayOperation(): Unit = {
    //定义数组
    var z:Array[String] = new Array[String](3);
//  var z = new Array[String](3);

    //遍历数组
    var myList = Array(1.9,2.9,3.9,4.9,5.9)
    //输出所有数组元素
    for(x <- myList){
      println(x)
    }

    //计算所有元素的sum值
    var total = 0.0
    for( t <- 0 to (myList.length-1)){
      total += myList(t)
    }
    println(s"${myList} sum is ${total}")


    //查找数组中最大的元素
    // TODO:
    var maxValue = 0.0
    for(i <- myList){
      maxValue = if(maxValue>i) maxValue else i
    }
    println(s"${myList}最大值为:${maxValue}")
  }

  /**
   * List操作
   */
  def ListOperation(): Unit = {
    //定义字符串List
    val site:List[String] = List("xxx商城","Google","Baidu");
    //定义整型list
    val nums:List[Int] = List(1,2,3,4);
    //空列表
    val empty:List[Nothing] = List();
    //二维列表
    val dim:List[List[Int]] = List(List(1,0,0),List(0,1,0),List(0,0,1))

    //
    val siteVal = "xxx博客" :: ("Google" :: ("Baidu" :: Nil))
    val numsVal = Nil
    println(s"第一个网站是:${siteVal.head}")
    println(s"最后一个网站是:${siteVal.tail}")
    println(s"查看列表siteVal是否为空:${siteVal.isEmpty}")
    println(s"查看numsVal是否为空:${numsVal.isEmpty}")
    println(Nil)

    for(t <- siteVal){
      println(s"${t}")
    }
  }

  /**
   * Set操作
   */
  def SetOperation(): Unit = {
    val s:Set[String] = Set("xxx商城","Google","Baidu")
    val nums:Set[Int] =Set()
    println(s"第一个网站是:${s.head}")
    println(s"最后一个网站是:${s.tail}")
    println(s"查看列表site是否为空:${s.isEmpty}")
    println(s"查看nums是否为空:${nums.isEmpty}")
  }

  /**
   * Map操作
   */
  def MapOperation(): Unit = {
    //定义Map
    val colors = Map(
      "red"->"#FF0000",
      "azure"->"#F0FFFF",
      "peru"->"#CD853F"
    )
    val nums:Map[Int,Int] = Map()

    //操作
    println(s"colors中的键值:${colors.keys}")
    println(s"colors中的值为:${colors.values}")
    println(s"检测colors是否为空:${colors.isEmpty}")
    println(s"检测nums是否为空:${nums.isEmpty}")

  }

  /**
   * 元组操作
   */
  def TupleOperation(): Unit = {
      //定义元组
    val t = (4,3,2,1)
    val sum = t._1+t._2+t._3+t._4  //调用元组元素
    println(s"元素之和为:${sum}")
  }

  /**
   * option操作  option有值返回Some[T] 没有值返回None
   */
  def optionOperation(): Unit = {
    //定义Map
    val site = Map("lius"->"lius的博客")
    //取值
    val value1:Option[String] = site.get("lius")
    val value2:Option[String] = site.get("Baidu")

    //打印结果
    println(s"value1:${value1},value2:${value2}")

    //模实匹配
    println(s"value1:${show(value1)},value2:${show(value2)}")


  }
  def show(x:Option[String])= x match {
    case Some(s) =>s
    case None => "?"
  }

  def main(args: Array[String]): Unit = {
    //1.Array数组
//    arrayOperation()
    //2.List列表
//    ListOperation()
    //3.Set集合
//    SetOperation()
    //4.Map映射
//    MapOperation()
    //5.元组
//    TupleOperation()
    //6.Option
    optionOperation();
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值