1.函数的定义形式
def add([参数:类型])[返回类型][=]{方法体}
注意:方法体的return 不是必须的,最后一句默认返回
方法体的花括号可以没有
总之 可以没有参数,没有返回值,没有=号,没有花括号,没有return
def add(a:Int,b:Int):Int={
return a+b
}
def add(a:Int,b:Int):Int={
a+b
}
def add(a:Int,b:Int):Int=a+b
def add(info:String) {printf(info)}
def add(info:String)= println(info)
2.函数参数的默认值
def echo(per:String,info:String,post:String):String={
per+info+post
}
echo("[[","hello","]]")
若果[[和]]的出现概率特别高,可以设置为默认
def echo(per:String="[[",info:String,post:String="]]"):String={
per+info+post
}
必须指明赋值给哪一个参数,默认是第一个参数
call: echo(info="hello")
3.不定长参数
def add(m:Int*):Int={
var sum=0
for(x <-m){
sum+=x
}
sum
}
add(1,2,3,4,5)
add(1 to 5 :_*)
使用 add(1 to 6) 是不行的,因为参数类型不对
可以add(1 to 5 :_*) 来迭代一个range
4.数组的定义
val arr= new Array[Int](5)
val arr2 = Array(1,2,3,4,5)
val arr3=Array(1 to 10:_*)
Result:
arr: Array[Int] = Array(0, 0, 0, 0, 0)
arr2: Array[Int] = Array(1, 2, 3, 4, 5)
在Scala当作,数组的长度是不刻改变的,类似于Java
5.数组的切片(切分)
val arr3=Array(1 to 10:_*)
arr3.splitAt(3) //只能分成两段
res0: (Array[Int], Array[Int]) = ([I@30bd41ae,[I@d5df719)
arr3.slice(2,5) //前包后不包 相当于subString(begin,end)
res1: Array[Int] = Array(3, 4, 5)
6.数组的迭代
val arr3=Array(1 to 10:_*)
arr3.foreach(println)
for(x <-arr3){
println(x)
}
高阶函数,也就是函数调用函数,把函数名println 传递给高阶函数foreach()
7.变长数组
mutable :可变的
import scala.collection.mutable.Arraybuffer
var arr= ArrayBuffer(1 to 10:_*)
arr+=5
arr.insert(1,5) //(index ,value)
arr.foreach(println)
//添加一个集合
arr++=Array(1,2,3)
arr-=3 //第一个value的3 被移除
arr--=Array(1,2,3)
arr.remove(5) //remove(index) 根据position返回被移除的value
arr.remove(offerset,deleteNumber) //删除多个 (偏移量,删除多少个)
arr(1) //通过下标找value
arr.indexOf(4) //通过value找下标
分类:
Scala
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥