Scala 挑战练习题 day-03

这篇博客主要聚焦于Scala语言,通过实例展示了多种常用语句的运用,旨在提升编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:主要是对一些常用的语句进行案例演示

​//高阶函数的练习
/*
* 编写函数,输出一个集合
* 对应给定区间内给定函数的输入和输出
*/
object _01Demo {
    def main(args: Array[String]): Unit = {
        println(f1(x => x * x, -4, 4).mkString)
        //(4,16)(3,9)(2,4)(1,1)(0,0)(-1,1)(-2,4)(-3,9)(-4,16)
​
        def f1(fun: (Int) => Int, low: Int, high: Int) = {
        var array = List[(Int, Int)]()
        low to high foreach{
            x =>
                array = (x,fun(x)) :: array
        }
            array
        }
    }
}
​//样例类
object _02Demo {
    def main(args: Array[String]): Unit = {
        //获取样例类
        val per:Person = Person("lisi", 18, 'M')
        //属性名操作属性
        println(per)
        println(per.age)
        //Person(lisi,18,M)
        //18
    }
}
​
/**
 * 定义样例类:可以不适用new进行对象的创建
 * 类名首字母大写
 * 关键字 case
 * 可以直接通过属性名操作属性
 */
case class Person(name:String,age:Int,gender:Char)
​
​
​//伴生对象
object _03Demo {
    def main(args: Array[String]): Unit = {
     Person3.m3
     Person3.apply("HELLO")
        //通过伴生对象,去掉new关键字
        val per:Person3 = Person3("Lisi")
        println(per)
        //hello
        //_name:HELLO
        //name:HELLO
        //_name:Lisi
        //name:Lisi
        //com.qf.scala.exercise.day04._03Demo$Person3@7e0babb1
    }
​
    /**
     * class:伴生类    object:伴生类对象
     * object中的方法都是静态方法,可以直接通过类名调用
     * apply是一个特殊方法,可以直接 类名() 调用
     */
    //定义伴生类
    class Person3(name:String){
        var _name:String = name
        println("_name:"+_name)
        println("name:"+name)
    }
    //定义伴生类对象
    object Person3 {
        def m3 = {
            println("hello")
        }
            //apply方法
            def apply(name:String):Person3 = new Person3(name)
​
        }
    }
​
​//高阶函数
object _04Demo {
    def main(args: Array[String]): Unit = {
        //m4函数式传进来什么就打印什么
        m4(x=>"world")
    }
​
    /**
     * scala 面向函数式编程
     * 基本单位:函数 也应该有对应的类型
     * 函数类型:由参数类型和返回值决定
     * 函数也可以作为参数传入方法内
     * 函数也可以作为返回值
     */
    //函数作为参数
    def m4(f:String=>String)={
        val str:String = f(" ")
        println(str)
    }
}
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值