Scala学习笔记

1、Scala自定义函数

object MethodDemo {
  def main(args: Array[String]): Unit = {
    maxNum(5, 6)
    //无参数函数可以省略括号
    helloScala
  }

  //带参数函数
  def maxNum(x: Int, y: Int): Int = {
    if (x > y) {
      println("最大值是: " + x)
      return x
    } else {
      println("最大值是: " + y)
      return y
    }

  }

  //无参数函数
  def helloScala(): Unit = {
    println("Hello Scala ...")
  }
}

结果:

最大值是: 6
Hello Scala ...

 

2、for循环:

import scala.util.control.Breaks

object ScalaDemo {
  def main(args: Array[String]): Unit = {
    var array = (0 to 10).toArray
    var length = array.length
    println("the length of array is " + length)
    var loop = Breaks
    //最基本的for循环写法
    for (a <- array) {
      print(a + " ")
    }
    println()
    //for循环的守护模式,实现continue和break
    println("for循环的守护模式,实现continue和break")
    //break
    for (a <- array if a < 5) {
      print(a + " ")
    }
    println()
    for (a <- array if a != 5 && a != 6) {
      print(a + " ")
    }
    println()
    println("实现9*9乘法表")
    for {i <- 1 to 9
         j <- 1 to i} {
      print(s"${j}*${i}=${i * j} ")
      if (j == i) {
        println()
      }
    }
  }
}

结果:

the length of array is 11
0 1 2 3 4 5 6 7 8 9 10 
for循环的守护模式,实现continue和break
0 1 2 3 4 
0 1 2 3 4 7 8 9 10 
实现9*9乘法表
1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

3、匿名函数

 在Scala中,函数也可以不需要命名,此时函数成为匿名函数;可以直接定义函数后,将函数赋值给某个变量;也可以将直接定义的匿名函数传入其他函数之中;Scala定义匿名函数的语法规则就是,(参数名:参数类型)=>函数体

object MethodDemo {
  def main(args: Array[String]): Unit = {
    val sayHello = (name: String) => {
      println("Hello " + name)
    }
    sayHello("Lucy")
  }
}

4、数组

import scala.collection.mutable.ArrayBuffer

/**
  * Created by zuowei.zhang on 2018/9/8 16:08
  */
object ArrayDemo {
  def main(args: Array[String]): Unit = {
    //数组的定义:定长数组
    println("定长数组")
    val arr1 = Array(1, 2, 3, 4, 5, 6)
    val arr2 = new Array[Int](10)
    //更新值
    arr1(0)=1000
    println(arr1(0))
    //数组的定义:可变数组
    println("可变数组")
    var buf=ArrayBuffer[Int]()
    buf.append(1)
    buf.append(2)
    buf+=3
    println(buf)
    println("指定位置插入数据")
    buf.insert(1,4)
    println(buf)
    println("删除数据")
    buf.remove(1)
    println(buf)
  }
}

结果:

定长数组
1000
可变数组
ArrayBuffer(1, 2, 3)
指定位置插入数据
ArrayBuffer(1, 4, 2, 3)
删除数据
ArrayBuffer(1, 2, 3)

 

 

基于STM32F407,使用DFS算法实现最短迷宫路径检索,分为三种模式:1.DEBUG模式,2. 训练模式,3. 主程序模式 ,DEBUG模式主要分析bug,测量必要数据,训练模式用于DFS算法训练最短路径,并将最短路径以链表形式存储Flash, 主程序模式从Flash中….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值