Scala基本语法

本文介绍了Scala编程语言的基本语法,包括数据类型的分类,变量和常量的声明方式,类和对象的创建,对象实例化的过程,以及如何使用步长进行for循环。在创建类时,Scala会自动生成getter和setter方法,并允许重写构造器。对象创建通过new关键字,而单例对象定义在object中,其属性和方法为静态。for循环中,使用yield可以生成集合。伴生类和伴生对象在Scala中可以互访私有成员,提供更灵活的访问控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据类型
  • 常见数据类型
Byte 8 bit的有符号数字,范围:-128 —— 127
Short 16 bit有符号数字,范围:-32768 —— 32767
Int 32 bit有符号数字,范围:-9223372036854775808 —— -9223372036854775807
Float 32 bit IEEE 754单精度浮点数
Double 64 bit IEEE 754双精度浮点数
String 字符串
Boolean 布尔类型
  • 特有数据类型
Unit 表示无值,和其他语言中void等同
Null 空值或者引用
Nothing 所有其他类型的子类型,表示没有值
Any 所有类型的超类,任何实例都属于Any类型
AnyRef 所有引用类型的超类
AnyVal 所有值类型的超类
None 是Option的两个子类之一,另一个是Some,用于安全的函数返回值
Nil 表示长度为0的List
变量和常量的声明
  • 定义常量使用val,不可再给常量赋值。
  • 定义变量使用var,可以重新赋值
/*一行的结尾可以省略分号,如果一行有多个语句,可以使用分号分隔*/
var a = "百度"
println(a)
a="腾讯"
创建类和对象

创建类使用Class,有如下需要注意:

  • class默认实现了getter setter方法。
  • class中如果有参数的传入,那么这个构造器就是这个类的默认构造器。
  • 重写构造器,必须调用类默认的构造器。
  • class在被new对象的时候,除了方法内部不执行,其他地方的代码都会被执行。
  • class默认可以传参数,默认的传参数就是默认的构造函数。
  • class使用时要使用new
class Person(xname:String,xage:Int){
  val name = xname;
  val age = xage;
  var money = 100;
  /**重写构造器,必须调用类默认的构造器**/
  def this(xname:String,xage:Int,xmoney:Int){
    this(xname,xage)
    money = xmoney
  }
  def test():Unit = {
    println("hello")
  }
}
object Test {
  def main(args: Array[String]): Unit = {
  val person = new Person(xname="lisi",xage=18)
    println(person.name+"   "+person.age+"    "+person.money);
  }
}
创建对象

创建对象使用Object,有以下需要注意

  • object里面不能传递参数,object里面的属性和方法都是静态的(类似于java中Static修饰的东西)
  • object是单例对象,类似于java中的工具类(类名.方法)
  • 伴生类和伴生对象:在一个Scala文件中,如果class和object的名字一样,则互为伴生类和伴生对象,他们可以直接访问到互相的私有成员变量
  • object使用时不使用new
步长
    println(1 to 10)             //从1递增到10,每步递增1,闭区间
    println(1 until 10)         //1递增到10,每步递增1,左闭右开
    println(1 to (10,2))       //从1递增到10,每步递增2
for循环

for循环使用yield关键字返回一个集合,语法如下:

for {子句} yield {变量或表达式}
//原来的集合不会被改变,指挥通过你的for/yield构建出一个新的集合
//将for循环中的符合条件的元素通过yield关键字返回成一个集合

//例子
val list = for(i <- 1 to 10; if(i > 5)) yield i
for (w <- list){
	println(w)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值