跟我一起学scala之——操作符和运算

本文介绍了Scala语言中的基本类型,包括整数、小数、字符、字符串和布尔值等,并详细解释了如何使用这些类型及相关的操作符方法。此外还介绍了Scala中特有的符号字面量及其使用场景。

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

基本类型和操作,scala 的基本类型包括如下几种:

数类型

​整数类型 :Byte Short Int Long

​小数类型: Float Double

字符类型:Char 用'' 单引号包裹,是Unicode字符 转义字符也属于字符类型。

字符串类型: String 【属于java.lang包】 用" " 双引号包裹 。 """ """ 三引号表示,为原始字符串

布尔值: Boolean

除了String 属于Java.lang 包,其他都属于 scala 包

如:Int 全名为 scala.Int ,但是,scala包和java.lang 包被每个源文件自动引用,所以可以简写为 Int

字面量 就是直接写在代码里的常量值。

    println(
      """hello
        world
      """)
      /*
      显示如下
      hello
            world 
      */ //因为""" 里面是原始字符,换行,空格,缩紧什么都会保持原样,所以就出现了字符串错位的情况,为了解决这个问题,我们使用 stringMargin方法。如下
    println(
      """|hello
        |world
      """.stripMargin)
    /*
    hello
    world
    /* 

符号字面量

'<标识符> 标识符可以是任何字母或数字(不能为数字开头)。如:'hellokitty 。符号字面量的唯一作用就是显示名字。

scala> val a = 'hello
 // s: Symbol = 'hello
scala> a.name
 // res9: String = hello
/*注意区分 String类型
scala> val s = "hello"
 //b: String = hello
scala> s.name //报错
scala> val m = '1234567 //报错
scala> val o = '1234a //报错
scala> val n = 'a122456 //没问题

符号字面量是 scala.Symbol 的实例。 符号是限定的,如果有两个一样的符号字面量,那么两个字面量指向同一个Symbol对象。

操作符和方法

scala没有传统别的语言意义上的运算符,所有的+ - * / 等运算符其实是对象的方法。例如:

1 + 2 //实际是:
  1.+(2) //调用了 1的+ 方法,并且把2作为参数传给它。

+ 是操作符,更具体的说是中缀操作符。操作符标注,不仅限于像+ 这种其他语言里看上去像操作符的东西,任何方法都可以被当作操作符来标注。例如上次我们的那个 类和对象里面有一个方法

val result = cs.add(100)

就可以写成如下形式

val result = cs add (100)

因为仅有一个参数,所以,小括号也可以省略,如下:

val result = cs add 100

scala 中,操作符不是特殊的语法,任何方法都可以是操作符。此二者只是对同一个函数,不同的使用方式造成的名字不同而已。

前缀操作符

前缀操作符是一元的,操作符在前,操作数在后。如-10,这些和中缀操作符一样,都是值对象调用方法的简写形式。

然而,他们的方法写法为unary_.如:

  println(-2)
  println(2.unary_-)

标识符中能作为前缀操作符的只有 + - ! ~ 四个。

后缀操作符

后缀操作符也是一元的。操作数在前,操作符在后。后缀操作符,是不用点或括号的不带任何参数的方法。在scala中,方法调用的空括号可以省略。

惯例是,如果方法带有副作用那就加上括号,如println(),如果没有副作用就去掉括号。

    println("Hello World".toLowerCase())//点调用,有括号
    println("Hello World".toLowerCase) // 省略了括号
    println("Hello World"  toLowerCase) //后缀操作符

注意,后缀操作符和操作符标注是有区别的。

其余的操作符运算、优先级,和其他语言没什么差别。

原文链接:https://www.cnblogs.com/jijizhazha/p/7181293.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值