scala学习(一)—基础部分详解

官网

1.数据类型

  • Any: 所有类的超类

  • AnyVal: 所有值类型父类,是Any的子类

  • AnyRef: 所有引用类型的父类,是Any的子类

  • Null: 所有AnyRef的子类

  • Nothing: 所有类的子类,多用于抛出异常

  • Unit: 无值,类似java的void

  • Byte/Short/Int/Long/Float/Double/Char/String/Boolean/String:scala中每种类型都是类可直接操作 

 

 2.运算符

  • 数值运算符:加(+), 减(-), 乘(*), 除(/), 取余(%)
  • 关系运算符: 等于(==), 不等于(!=), 小于(<), 大于(>), 大于等于(>=), 小于等于(<=)
  • 逻辑运算符: 短路逻辑与(&&), 短路逻辑或(||), 逻辑非(!),逻辑或(|),逻辑与(&)
  • 位运算: 位与(&),位或(|),位异或(^), 取反(~), 左移位(<<), 右移位(>>), 无符号左移(<<<),无符号右移(>>>)
  • 对象比较运算符: 比较对象值(==),比较内存地址(eq方法)

3.声明变量

val a: Int = 1 // 不可变变量,类似java中的final修饰的变量
var b: Int = 1 // 可变变量,声明变量首选val,除非不得不使用var

//scala语言具有强大的类型推断功能,声明变量时刻省略类型使其自行推断
val a = 1
var b = 1
//符号类型一般用于模式匹配中,作为标识比较常用
val s = 'start

4.控制结构

if(score >= 90){
    "等级A"
}else if(score >= 80){
    "等级B"
}else{
    "一般"
}

//三元运算符
val abs = if(num > 0) num else -num

//匹配表达式,类似java的switch语句
val result = num match {
    case 1 => "one"
    case 2 => "two"
    case _ => "not 1 or 2"
}

5.for循环

for(i <- 1 to 10) println(i) //1 2 3 4 5 6 7 8 9 10

//1 4 7 10,by设定步长
for (i <- 1 to 10 by 3) println(i) 

//yield关键字将结果收集起来返回一个集合
val range = for(i <- 1 to 10) yield i * 2 

//if表达式可设置守卫(多个守卫使用;分割),对每个元素进行一次约束
val words = List("apple", "banana", "lime", "orange")
for(word <- words if word.length > 5) println(word)

// 双层for循环
for(i <- 1 to 5; j <- 1 to i) if(i != j) print("*") else println() 

//break
for(i <- 1 to 10){
    import scala.util.control.Breaks._
    if(i > 5) break
}

6.while循环

var i = 1
var sum = 0

while(i <= 100){ //while循环,scala不支持i++操作
    sum += i
    i += 1
}

do{ // do-while
    sum += i
    i += 1
}while(i <= 100)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值