Scala循环之for、foreach

更新时间:2023-06-26 16:23:32 阅读: 评论:0

Scala循环之for、foreach
前⼀节我们简单说明了scala中的while的循环,现在说说scala中的foreach遍历。
scala中的for和foreach和java中的⼀样的。现在我们简单实⽤⼀下:
1.创建⼀个scala的脚本,例如:scala-for-foreach.scala,脚本中的代码如下:
args.foreach(arg => println(arg)) 利⽤foreach进⾏遍历
我们执⾏这个脚本
C:\Urs\xuanyi>scala D:/scala/scala-script/scala-for-foreach.scala scala is goo
d tony
运⾏结果为:
scala
is
占据的意思good
maxim
tony
这个只是简单的使⽤,我们可以将上⾯的代码改变为:
weiqinargs.foreach((arg :String) => println(arg))
arg :String:说明arg中元素的类型为String的类型
因此我们调⽤⽅法(function)的使⽤可以这样使⽤
(x:Int,y:Int) =>  x + y
(x:Int,y:Int):代表⽅法的传递参数
x + y:表⽰⽅法体
总⽽⾔之,函数⽂字的语法是⼀个命名参数列表,在括号中是⼀个右箭头,然后是函数的主体。
现在,这⼀点您可能想知道发⽣了什么你已经习惯了那些可靠的循环使⽤命令式语⾔⽐如Java或c .为了引导你在功能⽅向,只有⼀个功能相对必要的(称为表达式)在Scala中可⽤。
我们现在使⽤for循环的⽅式:
for(arg <- args){
print(arg + " ");
}
我们将以上的代码,加到上⾯脚本⽂件中的后⾯,保存运⾏,运⾏的结果:
scala
欢欣鼓舞的意思is
good
tony
scala is good tony
我们看for和java中的不⼀样,这是scala中独有的for循环。
for循环在array中的使⽤:
var greetStrings = new Array[String](3)
greetStrings(0) = "Hello "
greetStrings(1) = ", "
greetStrings(2) = "world"
indraw
爱你单词>敌敌畏什么意思for(i <- 0 to 2)
print(greetStrings(i))
创建⼀个长度为3的字符串数组,使⽤for进⾏遍历,打印每⼀项的值。
我们制定greetStrings可以制定相关的类型,如下:
var greetStrings:Array[String] = new Array[String](3)
这⾥要注意,scala中的数组下标和java⼀样从零开始,但是java取值的时候⽤[ index ],和scala不同的是scala⽤(index).
for(i <-0 to 2)
print(greetStrings(i))
如果⼀个⽅法只接受⼀个参数,那么可以不带点或括号调⽤它。这个例⼦中的to实际上是⼀个只接受⼀个Int参数的⽅法。代码0到2被转换为⽅法调⽤(0).to(2)。注意,只有显式指定⽅法调⽤的接收⽅时,这种语法才有效。
fairytale什么意思>好听的英文歌曲名字此⽰例说明的另⼀个重要想法将为您提供见解为什么在Scala中使⽤括号访问数组的原因。 Scala的数量更少特殊情况⽐Java。 数组就像任何其他类⼀样只是类的实例Scala中的类。 在围绕⼀个或多个值应⽤括号时对于变量,Scala会将代码转换为⽅法的调⽤命名适⽤于该变量。 所以greetStrings(i)变成了greetStrings.apply(i)中。 因此,在Scala中访问数组的元素只是⼀个⽅法调⽤就像任何其他⽅法。这个原则不仅限于此数组:对象在括号中的某些参数的任何应⽤都将转换为apply⽅法调⽤。 当然这只会编译如果该类型的对象实际上定义了⼀个apply⽅法.
所以当运⾏1+2的时候,在scala中是这样的,(1).+(2)的形式执⾏的。
类似地,当对⼀个变量进⾏赋值时,应⽤括号和⼀个或多个参数,编译器将把该赋值转换为对update⽅法的调⽤,该⽅法将括号中的参数和等号右侧的对象⼀并调⽤八年级上册英语
greetStrings(0) = "Hello " 运⾏的⽅式为greetStrings.update(0,"hello")
println(greetStrings(0))  运⾏当时为greetStrings.apply(0)
我们可以这样声明⼀个数组:
val numNames = Array("one","two","four")
也可以这样声明
val numNames = Array.apply("one","two","four")
这⾥是调⽤scala Array的⼯程⽅法apply进⾏声明,创建并返回⼀个新的数组。

本文发布于:2023-06-26 16:23:32,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1044950.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数组   括号   参数   类型   循环   意思   代码   法调
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图