Scala基础语法介绍
发布时间:2020-12-16 08:58:06 所属栏目:安全 来源:网络整理
导读:1.变量的定义 注意 :在scala中没有static的概念,在 object 这个关键字修饰的类中所有的方法和属性都是static的。这里的 object 类叫做伴生类,目前不涉及。 例: object Test01{ def main(args: Array[String]): Unit = { //使用val定义的变量是不可变的,
1.变量的定义
注意:在scala中没有static的概念,在object这个关键字修饰的类中所有的方法和属性都是static的。这里的object类叫做伴生类,目前不涉及。 例: object Test01{ def main(args: Array[String]): Unit = { //使用val定义的变量是不可变的,相当于java中的final修饰的 val v1=1 //使用var定义的变量的值是可变的,在scala中鼓励使用的是val var v2=2 //在定义变量的时候,也可以在变量名前提供类型,如何不提供默认的是类型推断 val v3:String ="zzy" //自定义类型 val v4="jj" //类型推断 } } 2.scala的数据类型scala和java一样有7中数据类型:byte、char、short、int、long、float、double和boolean,但是无包装类型,还有String。 例: object Test01 { def main(args: Array[String]): Unit = { val v1: Int = 1 val v2: Double = 1.1 val v3: Float = 1.1f val v4: Char = ‘c‘ val v5: Boolean = true val v6: String = "zzy" val va7:String="""aaa tt0""" //三个引号表示特殊字符不转义 val va8: Byte = 0 //注意,如果在上面确定变量的数据类型,在下面则不能修改 val value1=1 value1="aaa" //这里会报出语法错误 } } 如以上的图所示: Any:是所有类的父类,包括值类型AnyVal和引用类型AnyRef AnyVal :是所有值类型的父类,包括 Int,Double,Boolean,Unit 等等 AnyRef :是所有引用类型的父类,包括 Null Null :是所有引用类型的子类, Null 也只有一个实例,是 null,相当于 java 中的 null,能赋值给任何引用类型变量,不能赋值给值类型变量 Nothing : Nothing Unit :类型只有一个实例,是(),相当于 java 中的 void,没有任何的实质意义(在定义方法的返回值的时候使用) 3.scala的基本操作符
4. 关键字5.控制流程语句? (1) 选择结构 object Test01 { def main(args: Array[String]): Unit = { val v1=5 //有返回值的判断语句(if-else) val result1=if(v1>5)"true" else "false" //返回值为()的判断语句(if-else if -else) val result2=if(v1>3) "true" else if(v1>5) "false" else () } } ? (2) 块表达式 object Test01 { def main(args: Array[String]): Unit = { /** * 块中的最后一个表达式的值就是这个快的返回值。 * 就算是赋值表达式,也有返回值,是空,Unit。 */ val x=5 val y=10 val result1={ if(x>y){ "true" }else{ "false" } } val result2={ 2+2 } } } ? (3) 循环语句 for: object Test01 { def main(args: Array[String]): Unit = { //for 循环 //1 to 10 for(i<- 1 to 10){ println(i) //打印1 ~ 10 } //1 until 10 for(i<- 1 until 10){ println(i) //打印1 ~ 9 } //遍历可迭代对象 val arrs=Array("aa","bb","cc") for(item <- arrs){ println(item) } //在遍历是对每一个元素进行操作 var array:Array[Int]=Array(1,2,3,4) //将数组中的每一个元素都*5 val collect=for(i<- array) yield i*5 } } 注意:to 和 until 也是可以有第二个参数的,比如 1 to (10,3) 第二个参数表示步长 while: var i=1 while(i<=9){ println(i) //i++ //注意这两句话是错误的,在scala中没有++ -- i+=1 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |