SCALA:结构体系

本文深入介绍了Scala中的数据类型,包括数值类型(如byte、short、int等)、布尔类型、字符类型、空类型以及引用类型。文章还详细解释了Scala类型体系,并通过示例代码展示了不同类型的应用。

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

Scala:数据结构

    Scala 类型体系
    Scala 数据类型详解
        1.Numeric types:byte/short/int/long/float/double

Scala 类型体系

在这里插入图片描述
代码:
1.scala的根类是Any,

Any是scala所有类的父类,
Any下面有两个子类:AnyVal、AnyRef

2.AnyVal表示值类型,下面有四个大类:

Numeric types:数值类型
Boolean:布尔类型
Char:字符类型
Unit:空类型

3.AnyRef是所有引用类型的父型:

所有java中的引用类型都是AnyRef的子类。
同样,所有我们自定义的scala的类也是AnyRef的子类。

4.上图(scala类型体系)的底部还有两个类:

Null是所有引用类型最后一个子类
Nothing是所有scala类型的最后一个子类。既是AnyVal,也是AnyRef的最后一个子类

Scala 数据类型详解
1.Numeric types:byte/short/int/long/float/double

byte:只有 1 个字节

package com.leili.scala

object Demo2 {
def main(args: Array[String]): Unit = {
val a: Byte=10
println(a)
}
}

short:2 个字节

package com.leili.scala

object Demo2 {
def main(args: Array[String]): Unit = {
val a: Short=10
println(a)
}
}

int:4 个字节
long:8 个字节
float

package com.leili.scala

object Demo2 {
def main(args: Array[String]): Unit = {
val a: Float=10
println(a)
}
}

输出是带小数点的——

	a:Float=50.0
  • double

package com.leili.scala

object Demo2 {
def main(args: Array[String]): Unit = {
val a: Double=60.98765
println(a)
}
}

输出是带小数点的——

	a:Double=60.98765

⚠️低精度数值类型向高精度数值类型赋值时,不需要类型转换。
⚠️高精度数值类型向低精度数值类型赋值时,会报错——type mismatch。(后面可以做隐式转换)

代码:

package com.leili.scala

object Demo2 {
def main(args: Array[String]): Unit = {
var b: Short = 20
var d: Byte = b
println(d)
}
}

报错

Error:(8, 19) type mismatch;
found : Short
required: Byte
var d: Byte = b

2.Boolean:true/false

3.Char

⚠️字符类型用单引号

4.Unit

  • 往往作为函数的返回值出现
  • 往往表示函数是有副作用的,因为函数不反悔任何的值

package com.leili.scala

object Demo2 {
def main(args: Array[String]): Unit = {
var d: Unit=()
println(d)
}
}

输出:

	()

5.Null

  • Null 表示引用类型是空

6.Nothing

  • Nothing 表示程序异常终止。对于一个函数而言,如果其返回值是Nothing,表示它出现了异常。

7.String

scala中,构建于java的String之上,新增了字符串插值的特性

package com.leili.scala

object Demo2 {
def main(args: Array[String]): Unit = {
var name = “leili”
println(s"my name is ${name}")
}
}

输出:

my name is leili

[root@node03 bin]# ./kafka-topics.sh --describe --bootstrap-server node03:9092 --topic assign_topic Topic: assign_topic TopicId: xkrl_J1UR0mB4xZBrX2ObA PartitionCount: 2 ReplicationFactor: 1 Configs: segment.bytes=1073741824 Topic: assign_topic Partition: 0 Leader: 3 Replicas: 3 Isr: 3 Topic: assign_topic Partition: 1 Leader: 3 Replicas: 3 Isr: 3 [root@node03 bin]# ./kafka-acls.sh --list --topic assign_topic --bootstrap-server node03:9092 Error while executing ACL command: org.apache.kafka.common.errors.SecurityDisabledException: No Authorizer is configured on the broker java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.SecurityDisabledException: No Authorizer is configured on the broker at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45) at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32) at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:89) at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:260) at kafka.admin.AclCommand$AdminClientService.$anonfun$getAcls$1(AclCommand.scala:180) at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286) at scala.collection.immutable.Set$Set1.foreach(Set.scala:141) at scala.collection.TraversableLike.map(TraversableLike.scala:286) at scala.collection.TraversableLike.map$(TraversableLike.scala:279) at scala.collection.AbstractSet.scala$collection$SetLike$$super$map(Set.scala:53) at scala.collection.SetLike.map(SetLike.scala:105) at scala.collection.SetLike.map$(SetLike.scala:105) at scala.collection.AbstractSet.map(Set.scala:53) at kafka.admin.AclCommand$AdminClientService.getAcls(AclCommand.scala:179) at kafka.admin.AclCommand$AdminClientService.listAcls(AclCommand.scala:146) at kafka.admin.AclCommand$AdminClientService.$anonfun$listAcls$1(AclCommand.scala:139) at kafka.admin.AclCommand$AdminClientService.listAcls(AclCommand.scala:138) at kafka.admin.AclCommand$.main(AclCommand.scala:74) at kafka.admin.AclCommand.main(AclCommand.scala) Caused by: org.apache.kafka.common.errors.SecurityDisabledException: No Authorizer is configured on the broker
最新发布
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值