Scala 字符类型|学习笔记

简介: 快速学习 Scala 字符类型。

开发者学堂课程【Scala 核心编程-基础Scala 字符类型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8894


Scala 字符类型

 

目录

一、字符类型(Char)

二、字符类型使用细节

 

一、字符类型(Char)

1、基本介绍

字符类型可以表示单个字符,字符类型是 Char,16位无符号 Unicode 字符(2个字节),区间值为 U+0000到 U+FFFF

2、案例演示:

var c1 : Char ='a'

var c2 : Char = '\t'

var c3 : Char='你'

varc4:Char=97

Char 类型是字符类型。在 Scala 里,Char 是由两个字节来表示,表示的范围是 U+0000到 U+FFFF。

 

二、字符类型使用细节

1、字符常量是用单引号(‘’)括起来的单个字符。

例如: var cl =‘a’    var c2 =‘中’    var c3 =‘9’

2、Scala 也允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。

例如: var c3 =‘\n'   //‘\n'表示换行符

转义

字符

\b

\n

\r

\t

\

\

\\

说明

退格符

换行符

回车符

制表符

双引号

单引号

反斜线

3、可以直接给 Char 赋一个整数,然后输出时,会按照对应的 unicode 字符输出[‘\u0061'97]

举例:

新建 Create New Scala Class,Name 为 CharDemo,Kind 为 Object。

打开编辑:

package com.atguigu.chapter02.datatype

object CharDemo {

def main(args: Array[String]): Unit = {

var char1 :Char = 97

println("char1=" + char1) // a

}

}

给一个数值97,指定类型是 Char。运行结果:

char1=a

结果看到,char1输出的是一个 a,而不是97。

当输出一个 char 类型时,会输出该数字对应的字符(码值表 unicode)

Unicode 码值表包含了 ASCII 码。

对于大数据来说可能用到的不是很多,但有时候大数据工程师在一些小公司里面也兼任 Web 工程师,偶尔需要把界面展示出来,多少会涉及到编码的问题,所以,需要了解 ASCII 码表。

4、Char 类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode 码。

var cl: Char = 'a'

var num:Int = 10 + c1 + 'b'

如 c1写为 a,将其当做整型运算也是可行的。

Char 可以当做数字进行运算。打开 CharDemo.scala 继续编辑

……

var char2:Char = 'a

var num = 10 + char2

println("num=" + num)

……

运行结果:

num=107

实际是97+10=107。可以看出这个 char 可以当做数字计算。

5、思考:var c2 :Char= 'a'+ 1正确吗?

这里会报错。在 Java 里,讲过一个细节,a+1本身没问题,但是当 a 这个字符跟一个数字运算之后,先要进行类型转换,会先把 a 转成一个 Int 类型,因此,整个结果就变成Int类型。一旦变成 Int 类型,再赋值给 Char,就相当于把一个高精度的值交给 Char。在 Scala 数据类型图中,可以看到转换关系,Char 可以给 Int,但是 Int 不能转给 Char。

将 var c2:Char= 'a'+ 1放到程序里,可以看到错误非常清晰,提示:Expression of type Int doesn't conform to expected type Char。

同样:

var C3: Char = 97+1  也会报错。提示:Expression of type Int doesn't conform to expected type Char

原因及分析:

(1) 当把一个计算的结果赋值一个变量,则编译器会进行类型转换及判断(即会看范围+类型)

(2) 当把一个字面量赋值一个变量,则编译器会进行范围的判定

编译器工作的时候,既要看范围值有没有越界,还要看类型是否匹配。var c2:Char= 'a'+ 1

这里的 Char,首先看类型,这个类型是 a,会先把 a 转成 Int 类型。已经有这个类型转换的逻辑了,这个结果就会是Int 类型,把 Int 类型交给 Char,显然判断拒绝。

var C3: Char = 97+1

97+1也进行了运算,运行的时候就会先判断类型,是 Int 类型。

var C4: Char = 98

编译器进行范围大小的判定。98并没有超过 Char 的范围。则可行。

var C5: Char = 99999

数字超过 Char 范围。也会报错。

相关文章
|
6月前
|
IDE Java 编译器
scala的两种变量类型 var 和 val
scala的两种变量类型 var 和 val
146 2
scala的两种变量类型 var 和 val
|
分布式计算 Java 大数据
|
安全 Java 大数据
大数据开发基础的编程语言的Scala的类型系统
Scala是一种强类型的编程语言,它具有一套完善的类型系统。本文将介绍Scala的类型系统,帮助开发者了解这门语言的类型安全性和灵活性。
93 0
|
Java Scala 开发者
Scala 下界介绍和应用实例 | 学习笔记
快速学习 Scala 下界介绍和应用实例
Scala 下界介绍和应用实例 | 学习笔记
|
Scala 开发者
Scala 上界介绍和应用实例2 | 学习笔记
快速学习Scala上界介绍和应用实例2
Scala 上界介绍和应用实例2 | 学习笔记
|
Java Scala 开发者
Scala 泛型介绍和应用实例2 | 学习笔记
快速学习 Scala 泛型介绍和应用实例2
Scala 泛型介绍和应用实例2 | 学习笔记
|
Java Scala 开发者
Windows 搭建S cala 开发环境|学习笔记
快速学习 Windows 搭建 Scala 开发环境。
200 0
Windows 搭建S cala 开发环境|学习笔记
|
小程序 Java 编译器
Scala 快速入门|学习笔记
快速学习 Scala 快速入门。
121 0
Scala 快速入门|学习笔记
|
Java Scala 开发者
Scala 接口基本介绍|学习笔记
快速学习 Scala 接口基本介绍。
252 0
Scala 接口基本介绍|学习笔记
|
Scala 开发者
Scala 的继承注意事项|学习笔记
快速学习 Scala 的继承注意事项。
105 0
Scala 的继承注意事项|学习笔记