手机企业网站设计理念,ui设计去什么公司好,门户网站建设开发需要注意什么,wordpress theme generator文章目录 函数方法定义默认参数命名参数可变参数条件语句循环表达式 函数
方法定义
def 方法名(参数: 参数类型): 返回值类型 {//方法体//最后一行作为返回值(不需要使用return)
}
def max(x: Int, y: Int): Int {if(x y)xelse y
}package org.example
object App {de… 文章目录 函数方法定义默认参数命名参数可变参数条件语句循环表达式 函数
方法定义
def 方法名(参数: 参数类型): 返回值类型 {//方法体//最后一行作为返回值(不需要使用return)
}
def max(x: Int, y: Int): Int {if(x y)xelse y
}package org.example
object App {def main(args: Array[String]): Unit {println(add(2,5))}def add(x:Int,y:Int):Int{xy}
}7 package org.example
object App {def main(args: Array[String]): Unit {println(three())//没有入参的时候可以不用写println(three)}def three()12
}无返回值 自动加Unit
默认参数 默认参数 在函数定义时允许指定参数的默认值 //参数def sayName(name: String ) {println(name)}//默认参数def sayName1(name: String sunzhongming.com) {println(name)}//main调用sayName(hiszm.cn)sayName1()sayName1(haha)hiszm.cn sunzhongming.com haha 命名参数 可以修改参数的传入顺序 ; 可以通过参数的名字来进行传参 def speed(destination: Float, time: Float): Float {destination / time
}
println(speed(100, 10))
println(speed(time 10, destination 100))可变参数 可变参数(可传入任意多个相同类型的参数) def sum(number: Int*) {var result 0for(num - number) {result num}result
}
阅读相关源码org.apache.spark.sql.Dataset中的select方法
条件语句 循环表达式
这个脚本从变量定义开始var i 0。类型推断将i判定为scala.Int因为这是初始值0的类型。下一行的while语法结构使得代码块即花括号中间的部分被不断地重复执行直到boolean表达式i args.length的值为false。其中args.length给出的是数组args的长度。代码块包含了两个语句各缩进2个空格这是Scala推荐的缩进风格。其中第一个语句println(args(i))打印出第i个命令行参数。而第二个语句i 1让变量i自增1。 注意Java的i和i在Scala中并不工作。要想在Scala中让变量自增要么用i i 1要么用i 1。 三种循环遍历结构 val arrshsizm.cnvar i 0;while (iarrs.length){println(arrs(i));i1}arrs.foreach(arrprintln(arr));for(arr-arrs){println(arr)}to 1 to 10 (左闭右闭) 1.to(10)range Range(1,10) (左闭右开的) Range(1,10,2) (2为步长)until 1 until 10 (左闭右开)
to、until的底层调用都是Range
scala 1 to 10
res1: scala.collection.immutable.Range.Inclusive Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)scala Range(1,10)
res2: scala.collection.immutable.Range Range(1, 2, 3, 4, 5, 6, 7, 8, 9)scala 1.to(10)
res3: scala.collection.immutable.Range.Inclusive Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)scala Range(1,10,2)
res4: scala.collection.immutable.Range Range(1, 3, 5, 7, 9)scala Range(1,10,5)
res5: scala.collection.immutable.Range Range(1, 6)scala Range(10,1,-1)
res8: scala.collection.immutable.Range Range(10, 9, 8, 7, 6, 5, 4, 3, 2)scala 1 until 10
res9: scala.collection.immutable.Range Range(1, 2, 3, 4, 5, 6, 7, 8, 9)
for
for(i - 1.to(10)) {println(i)
}
for(i - 1.until(10, 2)) {println(i)
}
for(i - 1 to 10 if i % 2 0) {println(i)
}
val courses Array(Hadoop, Spark SQL, Spark Streaming, Storm, Scala)
for(x- courses) {println(x)
}
//x其实就是courses里面的每个元素
// 就是将左边的x作用上一个函数变成另外一个结果
courses.foreach(x println(x))while
var (num, sum) (100, 0)
while(num 0){sum sum numnum num - 1
}
println(sum)