Scala学习

Scala 基于 JVM、引入函数式编程

.scala文件 -> .scala.class字节码文件 -> JVM -> 硬件

JDK1.8 SCALA需要配置环境变量

object(声明的对象,伴生对象(跟对应入口的伴生类.class)(跟对应入口的所属类$.class))

var 变量名 [: 变量类型] = 初始值 var i:Int = 10

var 变量名 [: 常量类型] = 初始值 var i:Int = 20

注意:能用常量的地方不用变量

标识符命名规则:

(1)以字母或者下划线开头,后接字母了、数字、下划线

(2)以操作符开头,且只包含操作符(±*/#!等)

(3)用反引号‘…’包括的任意字符串,即使是Scala关键字(39个)也可以

字符串输出:

(1)字符串,通过+号连接
(2)printf用法:字符串,通过%传值
(3)字符串模板(插值字符串):通过$获取变量值

键盘输入:

import scala.io.StdIn

Scala数据类型:

(1)Scala中一切数据都是对象,都是Any的子类

(2)Scala中数据类型分为两大类:数值类型(AnyVal)、引用类型(AnyRef),不管是值类型还是引用类型都是对象

(3)Scala数据类型仍遵守低精度的值像高精度值类型自动转换

(4)Scala中的StringOps是对Java中的String增强

(5)Unit:对应Java中的void,用于方法返回值的位置,表示方法没有返回值。Unit是一个数据类型,只有一个对象就是0。Void不是数据类型,只是一个关键字

(6)Null是一个类型,只有一个对象就是null。它是所有引用类型(AnyRef)的子类。

(7)Nothing,是所有数据类型的子类,主要用在一个函数没有明确返回值时使用,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数。

整型:

(Byte[1] Short[2] Int[4] Long[8])[*]字节 // val num: Long = 123456789L

字符类型:

val c1: Char = ‘"’ // c1就是 "

Boolean类型:

0或1

Unit类型

:表示无值,与void等同,用作不返回任何结果的方法的结果类型

Null类型:

null,Null类型只有一个实例值null

Nothing类型:

是所有数据类型的子类,主要用在一个函数没有明确返回值时使用,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数(兼容性)

自动类型转换:

(1)自动提升原则:有多种类型的数据混合运算时,自动向高精度的类型转换。
(2)把精度大的数值赋值给精度小的数值类型时,就会报错,反之就会进行自动类型转换。
(3)(byte,short)和char之间不会相互自动转换
(4)byte,short,char三者可以计算,在计算时会转换为int类型

强制类型转换:

val num: Int = 2.5.toInt (to数值类型)
优先向最近的精度转换才不会报错

  • 涵义: 正号 | 加号 | 字符串相加(“Hello” + “world”)

逻辑运算符:

记 A 为 true,B 为false
&& (A && B) == false
|| (A || B) == true
! !(A && B) == true

赋值运算符:

C = A+B;	将A+B的值赋值给C

+= C +=1 将C+1赋值给C
-= C -= 1 将C-1赋值给C
*= C = 1 将C1赋值给C
/= C /= 1 将C/1赋值给C
%= C %= 1 将C%1赋值给C

<<= C <<= 2 等于 C = C<< 2

= C >>= 2 等于 C = C>>2
&= C &= 2 等于 C = C & 2
^= C ^= 2 等于 C = C^2
|= C |= 2 等于 C =C | 2

记 a 为 60,b 为 13

& (a & b) == 12 按位与运算符
| (a | b) == 61 按位或运算符
^ (a ^ b) == 49 按位异或运算符
~ (a ~ b) == -61 按位取反运算符
<< (a << 2) ==240 左移动算符

(a >> 2) == 15 右移动运算符

(a >>> 2) ==15 无符号右移

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值