Scala学习笔记(贰)

Scala是何等,能做哪些?

Scala是1门多范式的编制程序语言,壹种恍若java的编制程序语言
,设计初衷是兑现可伸缩的语言、并集成面向对象编制程序和函数式编制程序的种种风味。

时下,Scala 在国外相比火,脸谱 已经将团结整个的代码从 Ruby
转到了Scala。而且还有 Spark、Kafka、akka 那样的开源项目及
推特(TWTR.US)、Linkedin 等店铺大力援救,所以本身很看好 Scala 那门语言。


Scala的基础语法

本人收10了友好读书进度中感觉有要求记录的事物,防止忘记

文/林则徐则林

1. val 与 var

Scala 有三种概念变量的艺术:val和var。

当val定义好变量之后,不恐怕更改变量的值。类似于选择了Java的final来修饰变量。

scala> val param = "tony"
param: String = tony

scala> param = "monica"
<console>:12: error: reassignment to val
       param = "monica"
             ^

var定义的变量,能够频仍改动变量的值

scala> var param = "tony"
param: String = tony

scala> param = "monica"
param: String = monica

scala> println (param)
monica

有四个建议,Scala 程序员崇尚使用val,不可变对象和尚未副作用的不二秘籍。

前段时间福建渭南市第第二工大学院绥德区妇内科一名产妇,从5楼分娩大旨坠下,医护人员及时给予解救,但因伤势过重,抢救无效身亡。

2. 关于for循环

对此此事,该诊所刊登证明称:产妇马某于201七年4月1二十三日1伍时三十几分,
以“停经四1+1周供给住院待产”之主诉入院。“经过我们开始会诊,马某第叁胎四1+1周待产,经过检查大家发现胎儿底部偏大,1般足月胎儿双顶径在90mm左右,不过马某的胚胎双顶径为9玖mm,所以阴道分娩宫外孕风险相比大。”绥德院区妇内科2病区理事霍军伟接受华商报记者征集时表示,检查后护士就向产妇、家属表明景况,并提议剖宫产。可是,家属坚贞不屈顺产,并在《产妇住院知情同意书》上签名。

2.1 to关键字

跟Java分歧,Scala 的for循环变得很简短,直接选取to首要词就足以了

scala> for (i<- 1 to 10) {
     |  println ("i is " + i)
     | }
i is 1
i is 2
i is 3
i is 4
i is 5
i is 6
i is 7
i is 8
i is 9
i is 10

临盆那天,产妇疼痛难忍,一遍走出催产室到外面表白人让他行剖宫产手术。但家属均未予准许,照旧百折不回要顺产。最后致使孕妇情感失控跳楼。

2.2 until关键词

也足以使用until关键词

scala> for (i<- 1 until 10) {
     |  println("i is " + i)
     | }
i is 1
i is 2
i is 3
i is 4
i is 5
i is 6
i is 7
i is 8
i is 9

能够见见,until和to的区别之处在于不包罗最后3个因素。

思想政治工作作时间有爆发后,也是闹的哗然。有声源家属说医院不作为的、也有声源医院说亲戚不讲道理的。但说起底结出权利或许归到了诊所方,说是医院大楼防护方法从未办好,罚款并按期实行整顿改进。反正,人是死在医院的,医院怎么样也脱不了干系。

二.三 遍历集合

读取根目录下有所文件

scala> val files = (new java.io.File(".")).listFiles()

scala> for (file <- files) {
     |  println(file)
     | }
./.android
./.bash_history
./.bash_sessions
./.bashrc
./.CFUserTextEncoding
./.dir_colors
./.DS_Store
./.fonts
./.gdbinit
./.gimp
./.gitconfig
./.gitignore
./.gitignore_global
./.gradle

...

自个儿身边的医师朋友和同班也对此事比较关注,然后又从家在那里的书友中还明白到二个情景,说是这边农村的妇女地位比较低,家里的盛事本人做不了主,哪怕是生子女也是如此。而且那边的人脑子里有2个非常深厚的观念,便是第2胎一定要顺产,不然对少年儿童倒霉。

二.4 for循环和if条件语句一起利用

打字与印刷一到十,并且过滤出超乎伍的数字

scala>  for (i<- 1 to 10 if i>5) {
     |    println(i)
     | }
6
7
8
9
10

上边的代码,对于Java版本需求这样写

for (int i=1;i++;i<=10) {
     if (i>5) {
           System.out.println(i)
     }
}

据此,在 Scala 的for循环语句中能够运用if语句来做for循环的标准化过滤。
并且,for循环中还援助八个if条件,多少个if之间必要用“;”来划分。

有关这些标题,今日头条名称叫痛风症超人阿宝的法国巴黎积水潭医院的宁医务人士,在他的那本叫《八卦医学史:不患有,历史也会不平等》里就有不行详尽的上课与认证。他在书里写人类作为脊椎动物,从四肢着地到两脚站立直立行走,两腿向中档并拢,导致骨盆变窄,而骨盆又是胎儿娩出的必经之路。加上人类的进化,人的脑体积在不断加大,人尾部也就自然随之更加大。所以,胎儿的脑瓜儿在变大的同时而阿妈的骨盆却在减弱,这正是骨科通常听到的二个专盛名词,叫“头盆不称”,意思是相对于老母的阴户而言,孩子的脑袋太大了。

3. yield的用法

yield
会构造并赶回与给定集合相同类其余聚合。yield需求分外for循环来使用。
先看yield的用法

for {子句} yield {变量或表达式}

再举1些例证

scala>  for (i<- 1 to 10) yield i
res2: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala>  for (i<- 1 to 10) yield i*2
res3: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)

scala> val array = Array(1, 2, 3, 4, 5,6,7,8,9,10)
array: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> for (e<-array) yield e
res4: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> for (e <- array if e > 5) yield e
res5: Array[Int] = Array(6, 7, 8, 9, 10)

当for循环甘休后, 会重返全数 yield 的值组成的联谊。

再举贰个例证,在/Users/tony/文件夹下存放了二个test文本文件。打字与印刷出该公文文件中隐含Scala的整行内容。

/**
  * Created by tony on 2017/2/2.
  */
object YieldDemo {

  private val files = (new java.io.File("/Users/tony/")).listFiles

  private def fileLines(file: java.io.File) =
    scala.io.Source.fromFile(file).getLines.toList

  def main(args: Array[String]): Unit = {
    val lineLengths =
      for {
        file <- files
        if file.getName.endsWith("test")

        line <- fileLines(file)
        trimmedLine = line.trim
        if trimmedLine.matches(".*Scala.*")
      } yield line

    lineLengths.foreach(println)
  }
}

乘势现在划算的开拓进取,人的物质水平的滋长,以及计生的来头。孕妇在家庭的身价日渐狠抓,吃的好、睡的好,阿娘的体重在加码的还要胎儿的体重也在增高,那就再次增多了分娩的难度。

4. class 与 object的区别

Scala中并没有静态修饰符static,在object下的积极分子全体都以静态的,若是在类中宣示了与该类相同的名字的object则该object是此类的“伴生对象”,能够了然把类中的static集中停放了object对象中,伴生对象和类公事必须是同1个源文件,能够用伴生对象做一些开首化的操作。那一点上
Scala 和 Kotlin 有个别看似。

并且object不可能提供构造器参数,也正是说object必须是无参的。

class的始末实在太大了,未来会单独写一篇笔记。

切开孕妇的胃部取出胎儿爱抚胎儿,大概捣碎胎儿爱惜阿娘,三种格局都以全人类在商量进度中所做过的卖力与尝试。而直至18八二年,U.S.A.先生萨恩格把产妇的子宫壁纵行切开,取出胎儿再缝合,才有了人类的首先台成功的破宫产手术。

5. 类中getter/setter 方法

在Java中,平时将字段注脚为私家的,然后添加公有的getter和setter方法来提供访问字段的接口。

不过,Scala 对各种字段都提供了getter和setter方法。
先看一个例子

/**
  * Created by tony on 2017/2/2.
  */
class User {

  var name:String = ""
}

object TestSetterAndGetter {

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

    val user = new User()
    println ("user.name="+user.name) // 调用方法user.name()

    user.name = "tony" // 调用方法user.name_=("tony")
    println ("user.name="+user.name)
  }
}

在上述例子中,User对象的getter和setter分外号字为name和name_=。

将那么些不难的User类编写翻译后,使用javap查看生成的字节码,能够注明那或多或少。

 javap -private User.class

浮动如下的Java代码

Compiled from "TestSetterAndGetter.scala"
public class com.safframework.test.User {
  private java.lang.String name;
  public java.lang.String name();
  public void name_$eq(java.lang.String); // =号被翻译成了$eq
  public com.safframework.test.User();
}

将上述例子旅长User对象name的var改成val会变成什么吗?编写翻译器会唤起出错。使用val表明的字段,是只有getter,因为val表明的是不可变的。

val注解的字段不大概达成setter.png

关于顺产和剖宫产哪个更优越,宁先生在书中那篇叫《郑庄公的宫外孕与人类进化的代价》一文中说:那纯粹是个傻难题和伪难点,合适的正是最佳的,顺产和剖宫产本就应对差别的场所,又哪来的高低之分。顺产和剖宫产,都有极度鲜明的指征。无论是强求顺产而推辞剖宫产,仍然强迫剖宫产而不肯顺产,都以极致错误的。到底选拔顺产照旧剖宫产,应遵守医务人士的见识,切不可因为偏见而自作主张。必要提议的是,剖宫产手术是有风险的手术,对于那个符合顺产的孕产妇,照旧应当事先选项顺产。但同样,鬼怪化剖宫产,在必要剖宫产的时候拒绝剖宫产,是极度错误和险恶的。

总结

Scala 的语法跟 Kotlin 颇有相似之处,小编是先读书了 Kotlin 再来学 Scala
的,所以对于 Scala
的语法毫无违和感。在那边,小编收十了var、val的区分,for循环的使用,以及类的基础知识。

下一篇,笔者如故会接二连三整治 Scala
的根基语法相关内容。假如笔者有写得不正确的地点,请一定要告知本人。

原先的稿子:
Scala学习笔记(壹)

故而,宁先生写的那本叫《八卦经济学史:不受病,历史也会不平等》的书,分外适合医学生与非专业职员来举办阅读。工学生能够从那本书里询问到部分文学知识的前后,而非专业职员来读的话又足以从中获得部分医术常识性的知识,以便于能在碰着有的在世中普遍的诊治难题时,可以因为理解过而不那么恐慌,甚至能够使用相应的应对艺术,从而缓解难题。

书里每一篇小说的起头都会讲贰个历史人物的遗闻,然后再将这几个历史人物的故事与经济学做衔接,从国外的历史有名的人平素聊到国内的历史有名气的人,又从远古管管理学一向聊起现代历史学。语言轻松幽默、风趣幽默、文字灵动而又摇身一变,从而很好地充实了那本书的翻阅趣味性。

那本书的名字即便叫八卦艺术学史,有点无厘头的痛感。但内容却一点八卦的质疑都并未有。全部的野史人物故事并非胡乱堆砌,书里也对传说是野史还是正史进行了求证讲解。综上可得,那本书不管是从历史趣味性的角度,依然军事学的知识性角度,都以十分值得1读的壹本书。

然后,那本书依旧个连串版,第一部也曾经出版了。而那本书也让宁医务卫生人士作为一名新浪红人壹跃成为了畅销书小说家,从写《八卦管工学史一》的宁医务职员(主要医治大夫)升级到了写《八卦管理学史贰》的宁首席营业官(副老板医务职员)了。可谓是事业与爱好两不误啊!

本人当做一名艺术学生,那本书看起来是不行贴心的。尤其是对宁先生在书的自序里写的行医务职员涯中的“3遍哭泣”,尤其的多谢。所以,就壹些想再多说壹段。

孩提就听人开玩笑说,修自行车的能够犯错、做瓷器的可以犯错、做工作的能够犯错…唯独医务卫生职员无法犯错。因为,前者们都有推倒重新来过的只怕。可医务职员无法,生命唯有一次,它不会给您试错的空子!

托人,医师是人不是神,是个人就会有犯错的时候。那么医务卫生职员犯了错为何就无法获得原谅呢?过去先生身份高,犯了错也是敢怒不敢言。今后犯了错的先生如同过街的老鼠,人人喊打!

理所当然了,站在病者的角度去思维,这一定是在往好的地点在扭转。但作为医务人士,出了错,当然是期望能够收获原谅的。

故此本人就很抵触,医师的成人历程中,由八个菜鸟医务卫生职员到大方医务卫生人士,必定会是八个充满了血与泪的经过。那几个专家医师敢说本身的从医师涯贰回错都未有发生过,那是相当小概的。医师唯有在那么些进度里(当然也有年龄和社会经验的效劳)才会愈发成熟稳健,才能成为一名真正合格的大夫,从而治愈更加多的患儿。

成百上千工学生往往在刚进医院的时候会憧憬今后,当真正投入到了临床事业中,才意识压力是那般的宏大。因为你的各样决定都会给病号的病状造成相应的熏陶、每3次的谈话都会给患儿的妻儿心理引起相应的不定。

为此,顶不住压力,当了逃兵的大夫有好多。不信任,可以去问话当医务职员的人,在投机娃儿选专业和选择职业的难点上,很多的医务卫生人士都会禁止小孩报考管经济学专业。当然,那不是纯属的,也有把温馨孩子往法学方面指点的。不过,据我所知,那种状态少之又少。那份工作要说能赚很多,也不自然。而工作的麻烦倒是真的,很多时候还不被掌握。

自个儿参预过最长的壹台手术是11个钟头,从中午玖点到夜晚九点,粒水未进、屎尿未出,下台以往,笔者发现自身说话都没声了,小腿肚肿胀的不得了。妇产科很少有那样长期跨度的手术,首假诺因为主刀医生太必要健全了。其实手术进度中有一次的落功用果已经很科学了,可在高管的坚持不渝下,从术中C臂拍的名片与术前3D打字与印刷的模型来做比对,最终的结果真的可谓是突发性。那一刻,即便本身只是个帮手,小编也认为那一天的劳顿都以值得的。手术的成功预示着病人术后的坚守正常恢复生机的品位就越高。小编想那正是为医者最大的价值所在,也是生而为人所反映的个体价值啊!

新兴,由于各样原因,很遗憾的是,作者要么距离了那些行业。宁先生说的那个从医时的美青睐觉,固然之后本人不会再拥有,但自己想说的是,至少曾经也有所过!

有人说,医师是三个卓殊理想化的营生,医务职员感性1些,对伤者的病魔才能更感同身受1些。也有人说,医务职员是二个理性的饭碗,医务人士理性一些,对病情的变型才能预判的更理性客观1些。小编不知晓两者之间那二个更加好,可本身晓得,医务人士虽是三个事情,但大夫也是人,是个人就会有感觉的壹端。所以,两者如能协作是极其可是了。

医务人士面对病者时要感性,面对病情时肯定要理性。尤其是对这多少个大病重伤的伤者,因为你是她(她)们最后的一根救命稻草,是他(她)们最终与死神一搏的希望!

职责不可不谓之根本,任务也不可不谓之劳累啊!

最终,向全部处在病痛中并顽强地与疾病作努力的患儿,向装有华贵级职分业道德与职业技能并无私进献的医务卫生职员致敬!

——The Ned——

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图