我一般学习一门语言,大多一天能写个简单小功能。 至今遇到两个语言把我吓到了,一个是汇编,一个就是这个货,scala.

看spark源码是怎么把我逼疯的。

1
2
3
4
5
6
7
8
9
10
11
12
protected lazy val baseExpression: PackratParser[Expression] =
expression ~ "[" ~  expression <~ "]" ^^ {
case base ~ _ ~ ordinal => GetItem(base, ordinal)
} |
TRUE ^^^ Literal(true, BooleanType) |
FALSE ^^^ Literal(false, BooleanType) |
cast |
"(" ~> expression <~ ")" |
function |
"-" ~> literal ^^ UnaryMinus |
ident ^^ UnresolvedAttribute |
"*" ^^^ Star(None) |

这飘逸的手法。。

我上一章写了hello world, 回顾下代码

1
2
3
4
5
object Helloworld {
def main(args:Array[String]) = {
println("hellowold")
}
}

为了一个(作为java程序员的)良好的习惯,我还是用main函数。然后我们学会第一个利器:

var

1
2
3
4
var i = 1;
var j = ""
var m = 1.0
var n = List(1,2);

你会发现scala 非常像动态语言,自动识别类型,但是做个简单测试

1
2
var i = 1
i = 1.0

如果是弱语言会正常编译运行,但是如果是强语言,会出现编译错误。 所以实际上在你声明

1
var i = 1

的时候,已经被转译成了Int。 如果你在交互式窗口就能看到

1
2
var i=1
i:Int = 1

所以我在文章最开始定义的四种类型的完全写法是:

1
2
3
4
5
var i:Int = 1
var j:String ""
var m: Double = 1.0
var m1 : Float = 1.0f
var n : List[Int] = List(1,2)

最后补充一下常识:

scala支持的是java的八种基本类型

打印一下 i, 如下:

1
2
3
4
5
6
object Helloworld {
def main(args:Array[String]) = {
var i : Int = 1;
println(i)
}
}

本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/yjplxq/1412361,如需转载请自行联系原作者

【scala初学】scala 语法 声明相关推荐

  1. Scala的基础语法(超详细版)

    Scala的基础语法 文章目录 Scala的基础语法 1.声明值和变量 2.数据类型 3.算术和操作符重载 4.控制结构语句 4.1条件分支语句 4.2循环语句 5.方法与函数 5.1方法 5.2 函 ...

  2. Scala的抽象语法树打印小工具-小拉达

    为什么80%的码农都做不了架构师?>>>    最近做的两个项目,一个是VeriScala,另一个是Lickitung,都涉及到了Scala的抽象语法树(AST),前者是写macro ...

  3. 初学scala错误解决总结

    scala安装错误解决 1.安装scala,配置好环境变量后,在cmd中运行scala. 出现错误:此处不能运行\scala\bin\scala.bat 可能原因是,scala的安装目录有空格,如&q ...

  4. 【Scala】Scala中的模式匹配、类型参数与隐式转换

    1.模式匹配 (1)概述 模式匹配是Scala中非常有特色,非常强大的一种功能.模式匹配,其实类似于Java中的swich case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理.但 ...

  5. Scala之——Scala容器库(Scala’s Collections Library)

    简介(Introduction) Martin Odersky和Lex Spoon 在许多人看来,新的集合框架是Scala 2.8中最显著的改进.此前Scala也有集合(实际上新框架大部分地兼容了旧框 ...

  6. android studio scala插件,Scala 语言开发Andorid ,开发环境的搭建(一)

    Scala 语言开发Andorid ,开发环境的搭建 厌倦 Java 繁琐的语法,为了更优雅的开发 Android 程序,Scala 代替 Java 是一个不错的尝试. 开发前可以学习 Scala 的 ...

  7. 【Scala】Scala中常见集合的使用---代码详解

    1.List集合的使用及创建 object ListDemo1 {def main(args: Array[String]): Unit = {//创建一个Listval list: List[Int ...

  8. Scala教程– scala.io.Source,访问文件,flatMap,可变地图

    前言 这是面向初学者的Scala教程的第8部分. 该博客上还有其他文章,您可以在我正在为其创建的计算语言学课程的链接页面上找到这些链接和其他资源. 此外,您可以在" JCG Java教程&q ...

  9. 【scala】 scala 条件控制 和异常处理(二)

    [scala] scala 条件控制 和异常处理(二) 参考文章: (1)[scala] scala 条件控制 和异常处理(二) (2)https://www.cnblogs.com/lonelywo ...

  10. 【IDEA】Warning:scala: skipping Scala files without a Scala SDK in module(s) systemimport

    文章目录 1.概述 1.概述 表现特征,project里面的build.scala的任何东西都不生效,提示一片红,如此操蛋. 打开src目录下的scala源代码提示 no Scala SDK in m ...

最新文章

  1. 软件测试中7个令人匪夷所思的真理
  2. ubuntu 安装 postgres
  3. codevs 2865 天平系统1
  4. rust(69)-闭包
  5. java注解字段类型相同_《java基础学习之——重复注解》
  6. 【Python3爬虫】大众点评爬虫(搞定CSS反爬)
  7. javascript问题积累
  8. python do while语句_python控制语句执行流程(while)
  9. Java基础 - 变量的定义和使用
  10. python软件-Python软件下载|Python最新版本v3.5.1 下载_当游网
  11. strcmp函数使用中的一些细节问题
  12. java中交换机的作用_交换机链路聚合在网络中的作用
  13. IDEA - 官方定制主题,Dark Purple theme,Cyan Light Theme,Gray Theme
  14. a标签在IE浏览器进行download下载,出现中文乱码 - 戴向天
  15. 【报错】fatal: unable to access
  16. 计算机cpu配置,怎么看cpu配置?查看电脑cpu等硬件配置的操作
  17. 100G 数据,只有 100M 内存,怎么排序?
  18. 企业运维容器之 docker仓库
  19. 云存储——360云盘
  20. 如何建立自己的网站—建站历程分享

热门文章

  1. 聊天软件项目TCP升级版
  2. 第3章 一切基于pom
  3. Visual C++ 运行库合集
  4. 【C11】complex
  5. 协程入门(一):启动与挂起
  6. 大数据_Spark框架_快速上手_word count 案例分析---Spark工作笔记0005
  7. MyCat分布式数据库集群架构工作笔记0009---Mycat主--从复制配置上
  8. JAVA线程池_并发队列工作笔记0001---认识阻塞队列_非阻塞队列
  9. Netty工作笔记0078---Netty其他常用编解码器
  10. 如何删除win7Windows.old文件