一代明君的小屋 - scala基础
type: channel
link: https://yidaimingjvn.xyz/index.php/tag/scala基础/
items: scala基础

scala基础
type: item
date: 2022-04-16T12:58:00+08:00
description: scala基础函数格式：def 函数名(参数列表) : [返回类型] = { 函数体; }示例：def sum(value1:Int, value2:Int):Int={ value1+value2; } println(sum(2,3)) // --> 5;注意：scala的函数返回参数时，只要确保函数体的最后一条命令返回的值与函数定义的返回值相同即可正常返回。匿名函数格式：(参数)=>函数体;示例：val add=(x:Int)=>x+1; println(add(10)); // --> 11条件语句格式：if (布尔表达式){ 代码块 }if (布尔表达式){ 代码块 }else{ 代码块 } // 三if (布尔表达式1){ 代码块 }else if(布尔表达式2){ 代码块 }else if(布尔表达式3){ 代码块 }else{ 代码块 }示例：var a:Int=10; if(a==10){ println("a等于10"); } // --> a等于10var a:Int=10; if(a<10){ println("a小于10"); }else{ println("a不小于10"); } // --> a不小于10var a:Int=10; if(a<10){ println("a小于10"); }else if(a==10){ println("a等于10"); }else{ println("a不小于10"); } // --> a等于10循环while格式：while(条件表达式){ 循环体 }示例：var num:Int=0; while(num<=10){ num=num+1; } println(num); // --> 11;for格式：for(变量<-集合;过滤条件){ 循环体; }示例：for(num:Int<-1 to 10;if num%2!=1){ println(num); } // --> 2 4 6 8 10注意：n to m 表示从n到m的数组（包含n和m）示例：1 to 4就是(1, 2, 3, 4)for循环的过滤条件要用if做操作，不能直接写个布尔表达式for循环的多重循环嵌套不同于其他语言，只需要在过滤条件里再写一个循环条件，示例：for(num:Int<-1 to 10;js:Int<-1 to 10)do…while格式：do{ 循环体; }while(布尔表达式)示例：var num:Int = 10; do{ num+=1; }while(num<=10); println(num) // --> 11跳出/中断循环scala本身是没有跳出循环或者中断循环的方法的。因此如果要跳出或者中断循环只能先导入一个包，即:scala.util.control._格式：import scala.util.control._; var loop = new Breaks; for(变量<-集合;过滤条件){ 循环体; loop.break; }示例：import scala.util.controll._; var loop = new Breaks; for(num:Int<-1 to 10){ println(num); loop.break; } // --> 1数组(Array)创建格式：var 变量名:Array[数组类型] = new Array[数组类型](数组长度)var 变量名=Array(元素列表)示例：var age:Array[Int] = new Array[Int](3)var age = Array(1,2,3)设置值格式：数组名(下标参数)=元素示例：var age:Array[Int] = new Array[Int](3) age(0)=1; age(1)=2; age(2)=3;获取值格式：数组名(下标参数);示例：var age = Array(1,2,3) println(age(1)) // --> 2常用方法方法名描述arr.length返回数组长度arr.head返回数组第一个元素arr.tail返回数组除了第一个元素以外的元素arr.isEmpty判断数组是否为空arr.contains(x)判断数组是否包含元素xarr1++arr1将两个数组合并为一个数组concat(arr1，arr2)将两个数组合并为一个数组(需要导包)注意：concat()方法的使用需要导入包Array._注意scala默认创建的是不可变数组，创建可变数组需要导入包scala.collection.mutable.ArrayBuffer列表(List)创建scala构造列表还可以使用::加上Nil两个符号进行操作。符号描述Nil代表空列表::中缀操作…