肺炎挂什么科| 鱼爱吃什么食物| 过敏性皮炎吃什么药| 红斑狼疮是什么原因引起的| jimmychoo是什么牌子| 单核细胞百分比偏高是什么原因| elephant是什么意思| pt指什么| 哥谭市是什么意思| 失物招领是什么意思| 客单价什么意思| 5月12号是什么日子| 灏是什么意思| 烧钱是什么意思| 宝宝消化不良吃什么| 耳道发炎用什么药| 脂蛋白a高吃什么药| 胃蛋白酶原1偏低是什么意思| 潜血弱阳性什么意思| 古埃及是什么人种| 心率高吃什么药| 几月初几是叫什么历| 梦见海龟是什么意思| 谷草转氨酶偏低是什么意思| 肺部感染是什么症状| 身上肉疼是什么原因| 为什么会做噩梦| 口臭要做什么检查| 刘三姐是什么生肖| 肌酸有什么用| 南辕北辙什么意思| 为什么要冬病夏治| 芭蕉和香蕉有什么区别| 什么火海| 驻颜是什么意思| 一一是什么意思| 百香果是什么季节的| 阴阳两虚用什么药| 张飞穿针歇后语下一句是什么| 小便有刺痛感什么原因| 乱的偏旁是什么| 蟑螂长什么样| 人生最重要的是什么| 蓝莓什么时候种植| 肝硬化是什么引起的| 人瘦肚子大是什么原因| 怀孕有什么特征| 秋葵不适宜什么人吃| 杏色配什么颜色最洋气| 云字属于五行属什么| 56个民族都有什么族| 小孩做ct对身体有什么影响| 减胎对另一个胎儿有什么影响| 慢性萎缩性胃炎c2是什么意思| sama是什么药| 脚趾甲凹凸不平是什么原因| 结婚送什么| 探望产妇带什么礼物好| 梦见已故朋友什么预兆| 褪黑素是什么| 畏寒是什么意思| 骨是什么结构| 什么是龙骨| 怀孕吐得厉害吃什么可以缓解| 脑电图是检查什么的| 婴幼儿积食会有什么症状| 复方木尼孜其颗粒治什么病| igm是什么意思| 眩晕停又叫什么| 第一次见女方家长带什么礼物好| 希爱力是什么药| 上午8点是什么时辰| 掌中宝是什么东西| 什么时候闰五月| 茉莉什么时候开花| 麻豆是什么| 蛋白质高是什么原因| 喝茶拉肚子是什么原因| 黄鼠狼吃什么| 手会发抖是什么原因| 什么人适合喝三七粉| 身上老出汗是什么原因引起的| 口臭口苦什么原因引起的| 什么地溜达| 桂花乌龙茶属于什么茶| 丙肝吃什么药效果好| 宫颈炎吃什么药好| 铁树开花是什么意思| 什么叫释怀| 熬夜喝什么汤比较好| 为什么老是说梦话| 外围女是什么意思| 一个虫一个离念什么| 中学校长是什么级别| 什么是溶液| 戍怎么读音是什么| 补气血吃什么水果| 无拘无束的意思是什么| 老年人骨质疏松吃什么钙片好| 女生的小鸡鸡长什么样| 桂子是什么意思| 10月20日什么星座| 房子风水主要看什么| 无药可救是什么意思| 破釜沉舟是什么意思| 颂字五行属什么| 手足口疫苗什么时候打| 治烫伤最好的药膏是什么| 甲鱼吃什么食物| 入木三分什么意思| 喉炎雾化用什么药| 恪尽职守是什么意思| 蛋糕裙搭配什么上衣| 脚底板发红是什么原因| 喝盐水有什么作用和功效| 痧是什么| 站军姿有什么好处| 石榴花是什么季节开的| 77年的蛇是什么命| 尿频尿急尿不尽吃什么药最快见效| 祭司是干什么的| 肛门瘙痒是什么原因| 25年是什么婚| 师团长是什么级别| 为什么血脂会高| 县局长是什么级别| 手抖是什么情况| 淋球菌阳性是什么意思| 副团级是什么军衔| 芒果什么品种最好吃| 白带有血丝是什么情况| pink是什么颜色| 七七年属什么生肖| 肾不好挂什么科| 京东京豆有什么用| 蛇胆疮是什么原因引起的| 8月29号是什么日子| 吃饭就吐是什么原因| 牙髓炎吃什么药| 胎儿左心室点状强回声是什么意思| 日本为什么要偷袭珍珠港| 白色车里放什么摆件好| 精炼植物油是什么油| 鹿参膏有什么作用和功效| 孕育是什么意思| 什么是干股| 去湿气吃什么中药| bulova是什么牌子的手表| 查肝炎做什么检查项目| 大便什么颜色是正常的| 6月25日是什么日子| 手机为什么会发热| 默契是什么意思| 梦见棉花是什么意思| 有肝病的人吃什么好| 脂肪最终消化成什么| 泪目是什么意思| 肝血不足吃什么食补最快| 乙肝抗体1000代表什么| 耄耋是什么意思| 邹去掉耳朵旁读什么| 嘴唇上长痘是什么原因| 运动系统由什么组成| 什么是条件反射| 尿路感染是什么原因| 反酸是什么意思| 婴儿胀气是什么原因| 颈椎病最怕干什么活| 子宫腺肌症吃什么药最有效| 自言自语是什么病| 天地不仁以万物为刍狗是什么意思| 双子座男和什么座最配对| 鳞状上皮内高度病变是什么意思| 邯郸学步的寓意是什么| 螨虫长什么样子图片| 海参有什么功效| 脚踩棉花感见于什么病| 得偿所愿是什么意思| 天罗地网是什么生肖| 曹丕为什么不杀曹植| 为什么来月经会头疼| 今年什么生肖年| 突然长胖很多是什么原因| 风热感冒和风寒感冒有什么区别| 生死离别代表什么生肖| 子宫脱垂是什么症状| 装藏是什么意思| 身体缺钾是什么原因造成的| 立加羽念什么| 17号来月经什么时候是排卵期| 鸡精和鸡粉有什么区别| 火可以加什么偏旁| 减肥早餐吃什么| 梦见狗死了是什么预兆| 骨密度高是什么意思| 石榴石什么颜色的最好| panerai是什么牌子| 也字五行属什么| 辄的意思是什么| 大便颜色发绿是什么原因| 黄色加蓝色等于什么颜色| 代言是什么意思| 白羊座男和什么星座最配| 为什么经常打嗝| igg抗体阳性是什么意思| 什么是同人文| 什么血型生出o型血| 月子吃什么| 象牙有什么作用与功效| 孕妇吃鹅蛋有什么好处| 免疫球蛋白高说明什么| ipo是什么| 优生十项是检查什么| 非淋菌性尿道炎吃什么药最好| 橘色五行属什么| 糖尿病人吃什么水果好| 吃生姜对身体有什么好处| 孕妇睡觉流口水是什么原因| 胆气不足吃什么中成药| 结余是什么意思| 红茶是什么茶| 还人是什么意思| 产酸克雷伯菌属于什么菌| 32岁属什么的生肖| 下午一点半是什么时辰| 什么是牙齿根管治疗| 大姨妈期间不能吃什么东西| 买手是什么职业| 梦到前男友是什么意思| 沙和尚是什么动物变的| 为什么会有鼻屎| 心脏不舒服吃什么药最好| 疤痕憩室是什么意思| 网贷是什么| 中午吃什么饭| 紫玫瑰花语是什么意思| 全身痒是什么病| 啵啵是什么| 涤纶是什么面料| 胆红素偏高有什么危害| 生活是什么意思| 为什么今年闰六月| 什么时候跑步最好| 脾胃湿热吃什么药| 乾卦代表什么| 服装属于五行什么行业| 什么叫磁场| 孵化器公司是干什么的| 上车饺子下车面什么意思| 为什么糙米越吃血糖越高| 血糖能吃什么水果| 上大厕拉出血是什么原因| 傲慢表情是什么意思| 吴京为什么看上谢楠| 咳嗽流鼻涕吃什么药| 白蛋白偏低是什么原因| 升血小板吃什么药| 假牛肉干是什么做的| 为什么一动就满头大汗| 真菌是什么| 溢字五行属什么| 军绿色是什么颜色| 梦见自己得了重病预示什么| 岚字五行属什么| 百度
Scala Tutorial / Scala 基础语法

“我是大胃王”挑战赛在长安区滦镇街道上王村举办

百度 7战荷兰,英格兰仅取得4平3负战绩。

如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法。

Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的。

我们可以认为 Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递。接下来我们来理解下,类,对象,方法,实例变量的概念:

  • 对象 - 对象有属性和行为。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。对象是一个类的实例。

  • 类 - 类是对象的抽象,而对象是类的具体实例。

  • 方法 - 方法描述的基本的行为,一个类可以包含多个方法。

  • 字段 - 每个对象都有它唯一的实例变量集合,即字段。对象的属性通过给字段赋值来创建。


第一个 Scala 程序

交互式编程

交互式编程不需要创建脚本文件,可以通过以下命令调用:

$ scala
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1 + 1
res0: Int = 2

scala> println("Hello World!")
Hello World!

scala>

脚本形式

我们也可以通过创建一个 HelloWorld.scala 的文件来执行代码,HelloWorld.scala 代码如下所示:

object HelloWorld {
   /* 这是我的第一个 Scala 程序
    * 以下程序将输出'Hello World!' 
    */
   def main(args: Array[String]) {
      println("Hello, world!") // 输出 Hello World
   }
}

接下来我们使用 scalac 命令编译它:

$ scalac HelloWorld.scala 
$ ls
HelloWorld$.class	HelloWorld.scala
HelloWorld.class

编译后我们可以看到目录下生成了 HelloWorld.class 文件,该文件可以在Java Virtual Machine (JVM)上运行。

编译后,我们可以使用以下命令来执行程序:

$ scala HelloWorld
Hello, world!
在线实例 ?

基本语法

Scala 基本语法需要注意以下几点:

  • 区分大小写 -  Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。

  • 类名 - 对于所有的类名的第一个字母要大写。

    如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。

    示例:class MyFirstScalaClass

  • 方法名称 - 所有的方法名称的第一个字母用小写。

    如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。

    示例:def myMethodName()

  • 程序文件名 - 程序文件的名称应该与对象名称完全匹配。

    保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。

    示例: 假设"HelloWorld"是对象的名称。那么该文件应保存为'HelloWorld.scala"

  • def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。


标识符

Scala 可以使用两种形式的标志符,字符数字和符号。

字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号"$"在 Scala 中也看作为字母。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。

Scala 的命名规则采用和 Java 类似的 camel 命名规则,首字符小写,比如 toString。类名的首字符还是使用大写。此外也应该避免使用以下划线结尾的标志符以避免冲突。符号标志符包含一个或多个符号,如+,:,? 等,比如:

+ ++ ::: < ?> :->

Scala 内部实现时会使用转义的标志符,比如:-> 使用 $colon$minus$greater 来表示这个符号。因此如果你需要在 Java 代码中访问:->方法,你需要使用 Scala 的内部名称 $colon$minus$greater。

混合标志符由字符数字标志符后面跟着一个或多个符号组成,比如 unary_+ 为 Scala 对+方法的内部实现时的名称。字面量标志符为使用"定义的字符串,比如 `x` `yield`。

你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。


Scala 关键字

下表列出了 scala 保留关键字,我们不能使用以下关键字作为变量:

abstractcasecatchclass
defdoelseextends
falsefinalfinallyfor
forSomeifimplicitimport
lazymatchnewnull
objectoverridepackageprivate
protectedreturnsealedsuper
thisthrowtraittry
truetypevalvar
whilewithyield 
-:==>
<-<:<%>:
#@


Scala 注释

Scala 类似 Java 支持单行很多行注释。多行注释可以嵌套,但必须正确嵌套,一个注释开始符号对应一个结束符号。注释在 Scala 编译中会被忽略,实例如下:

object HelloWorld {
   /* 这是一个 Scala 程序
    * 这是一行注释
    * 这里演示了多行注释
    */
   def main(args: Array[String]) {
      // 输出 Hello World
      // 这是一个单行注释
      println("Hello, world!") 
   }
}

空行和空格

一行中只有空格或者带有注释,Scala 会认为其是空行,会忽略它。标记可以被空格或者注释来分割。


换行符

Scala是面向行的语言,语句可以用分号(;)结束或换行符。Scala 程序里,语句末尾的分号通常是可选的。如果你愿意可以输入一个,但若一行里仅 有一个语句也可不写。另一方面,如果一行里写多个语句那么分号是需要的。例如

val s = "php中文网"; println(s)

Scala 包

定义包

Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式:

第一种方法和 Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该报中。 比如:

package com.php
class HelloWorld

第二种方法有些类似 C#,如:

package com.php {
  class HelloWorld 
}

第二种方法,可以在一个文件中定义多个包。

引用

Scala 使用 import 关键字引用包。

import java.awt.Color  // 引入Color
 
import java.awt._  // 引入包内所有成员
 
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
  ...  // 因为引入了java.awt,所以可以省去前面的部分
}

import语句可以出现在任何地方,而不是只能在文件顶部。import的效果从开始延伸到语句块的结束。这可以大幅减少名称冲突的可能性。

如果想要引入包中的几个成员,可以使用selector(选取器):

import java.awt.{Color, Font}
 
// 重命名成员
import java.util.{HashMap => JavaHashMap}
 
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了

注意:默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._,这里也能解释,为什么以scala开头的包,在使用时都是省去scala.的。

女人为什么会得霉菌 疝气什么症状 受精卵着床有什么症状 猪肉排酸是什么意思 眼睛红红的是什么原因
武汉大学校长是什么级别 佩字五行属什么 晚上头疼是什么原因 重要是什么意思 蜱虫咬了什么症状
中老年吃什么钙片比较好 成人打虫吃什么药 公因数是什么意思 猫是什么生肖 急性扁桃体发炎吃什么药
为什么会得霉菌性阴道炎 吃生姜对身体有什么好处和坏处 三朵花代表什么意思 类风湿和风湿有什么区别 卤素灯是什么灯
大眼角痒是什么原因wmyky.com 头疼是什么引起的jingluanji.com 思觉失调是什么意思hcv8jop8ns7r.cn 蝴蝶骨是什么hcv9jop0ns4r.cn 疱疹挂号挂什么科室hcv9jop2ns5r.cn
36是什么意思hcv9jop3ns6r.cn april什么意思hcv9jop3ns7r.cn 妊娠什么意思hcv8jop0ns0r.cn 幼儿园什么时候放暑假hcv8jop1ns3r.cn 久旱逢甘露是什么意思wmyky.com
什么叫前列腺钙化hcv9jop0ns1r.cn 前列腺钙化是什么意思hcv7jop6ns2r.cn 噫气是什么意思hcv8jop4ns7r.cn 桂枝和肉桂有什么区别hcv8jop6ns4r.cn 肾结石去医院挂什么科hcv8jop2ns4r.cn
亚子什么意思hcv9jop4ns0r.cn 市政协秘书长是什么级别cj623037.com 右眼一直跳是什么原因hcv9jop0ns2r.cn 宝宝咳嗽有痰吃什么药效果好hcv9jop5ns7r.cn 牛仔是什么面料hcv9jop6ns6r.cn
百度