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)