日常数据开发用scala。深度学习一下语言特性。
println("rthellor") var name = "tom" var sal = 1.2 printf("name=%s sal=%f", name, sal) println(s"name=$name sal=${sal + 1}") //类型确定后不能修改 强类型语言 println(sal.isInstanceOf[Double]) var `true` = "hello,scala" println("内容=" + `true`)
var r2: Double = 10 / 3 println("r2" + r2) var r3: Double = 10.0 / 3 println("r3" + r3) import scala.io._ val str = StdIn.readLine() println("str=" + str) val a = StdIn.readInt() println("a="+a) val age = 6 if (age > 18) { println("age>18") } else { println("age<18") }
for (i <- 1 to 3) { //1,2,3 前后闭合 println(i + "1 to 3") } for (i <- 1 until 3) { //1,2,3 前闭 后开 println(i + "1 until 3") } //循环守卫 for (i <- 1 to 3 if i != 2) { println(i + "") } for (i <- 1 to 3; j = 4 - i) { println(j + "") }
// 嵌套循环 for (i <- 1 to 3; j <- 1 to 5) { println("i=" + i + " j=" + j) } // 循环返回值 // 遍历结果 返回到一个新的Vector 中 使用yield 关键字 val res = for (i <- 1 to 10) yield i // 将集合中的各个数据 进行处理 返回给新的集合 println(res) val result = for (i <- 1 to 10) yield { if (i % 2 == 0) { i } else { "不是偶数" } } println(result) // for 推导式 仅包含 单一表达式 时 使用圆括号 当其包含 多个表达式 时 使用大括号。 // Range 步长控制 for (i <- Range(1, 30, 2)) { println("……&*") println(i + "=i") }
// 控制步长 也可以用 for 循环守卫。 val start = 1 val end = 100 var count = 0 var sum = 0 for {i <- start to end; if (i % 9 == 0)} { count += 1 sum += i } printf("count=%d,sum=%dn", count, sum) while (count > 8) { println("hello,sgg" + count) count = count - 1 } // while 是先判断再执行语句 与 id 语句不同 While 本身返回结果是Unit 会对外部变量产生影响 不推荐使用 do { printf(sum + "sum") sum = sum - 1 } while (sum > 590) }
// scala 内置控制去掉了continue 和 break //breakable 对 break 抛出的异常做出了处理 代码继续执行。 import util.control.Breaks._ var n = 1 breakable { while (n < 20) { n += 1 println("n=" + n) if (n == 18) { break() } } } println("ok~") //也可以利用守卫实现中断scala 数据类型
scala 数据类型 分为两大类 AnyVal 值类型 和AnyRef 引用类型 不管是AnyVal 和AnyRef 都是对象Int Char。 + 号使用 : 左右两边都是数值类型时 则做加法运算 当有一方为字符串时 则做拼接运算。 Null 是所有 AnyRef 的子类 Nothing 也是Bottom class 类型转换 : byte short 和char 之间不会相互自动转化。 scala 不支持三目运算符。 if else 替换
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)