环境配置

IDE: https://www.jetbrains.com/idea/

子雨大数据之Spark入门教程(Scala版)

/* implement */

语言特性

Online compiler: https://scastie.scala-lang.org/

只记录 “不太一样” 的特性。

一、常量变量

常量 val, 变量 var。

二、循环

var name = "hello"
for (n <- name)
{
  println(n)
}

嵌套循环,遍历数字和数组元素。

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

    for (a <- 1 to 10) {
for (b <- 1 to 10) {
if (a == b) {
println("a = " + a + ", b = " + b)
}
}
}

//嵌套循环的等价新写法
for (a <- 1 to 10; b <- 1 to 10 if a == b) {
...
}
val arr = Array[Int](1,2,3,4,5)
for(elem <- arr) {
println(elem1)
}
}

until 则不包括最后一个元素。

    val arr = Array[Int](1,2,3,4,5)
val arr1 = new Array[Int](arr.length)
for (index <- 0 until arr.length) {
arr1(index) = arr(index) + 10
} println(arr1.toBuffer)

类似与lambda的写法。

    val arr = Array[Int](1,2,3,4,5)
val ret = for (a <- arr) yield a + 10
println(ret.toBuffer)

三、条件赋值

支持混合表达。

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

    val x = 1
val y = if (x > 0) 1 else -1
println(y) val m = if (x > 2) 1
println(m) val n = if (x > 2) 1 else ()
println(n) val k = if (x < 0) 0 else if (x >= 1) 1 else -1
print(k)
}

四、函数

  def ml(a: Int, b: Int): Unit = {
println("hello, " + (a+b))
} def main(args: Array[String]): Unit = {
// 1.匿名函数
val f1 = (a:Int, b: Int) => a + b
println(f1(10, 20)) // 2.普通函数
ml(10,20) }

/* implement */

最新文章

  1. C/C++内存泄露探测
  2. wchar_t内置还是别名?小问题一则(升级公司以前代码遇到的问题)
  3. LCT模板
  4. 【转】Linux网络编程入门
  5. (转)dedecms [field:array runphp=&#39;yes&#39;]标签使用技巧
  6. jQuery File Upload blueimp with struts2 简单试用
  7. tcpdump参数及使用介绍(转)
  8. javascript中字符串常用操作整理
  9. git 基本用法
  10. iOS APP中Versions和build版本区别
  11. js___原生js轮播
  12. python—迭代器、生成器
  13. U-Boot bootargs简析
  14. selenium3环境搭建以及各浏览器驱动的使用方法
  15. Advertising.csv
  16. [cb]扩展Hierarchy 添加二级菜单
  17. 数据挖掘(二)用python实现数据探索:汇总统计和可视化
  18. iOS APP 安全测试
  19. drf 认证、权限、限流、过滤、排序、分页器
  20. Linux SSH远程文件/文件夹传输命令scp

热门文章

  1. 二:MVC之LINQ查询语法
  2. Mybatis入门配置及第一个Mybatis程序
  3. 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur (SCC缩点,SPFA最长路,枚举反边)
  4. 【CQOI2017】老C的方块
  5. python批量下载邮件附件
  6. Zookeeper与Kafka Kafka
  7. node监听80端口权限问题
  8. C# 动态语言扩展(11)
  9. k8s部署普罗米修斯
  10. python中的pyc和pyo文件和__pyc__文件夹