欢迎来到天天文库
浏览记录
ID:37582198
大小:334.00 KB
页数:22页
时间:2019-05-25
《SCALA TUTORIAL 中文版》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AScalaTutorialforJavaprogrammersVersion1.3March15,2009MichelSchinz,PhilippHallerPROGRAMMINGMETHODSLABORATORYEPFLSWITZERLAND1介绍-Introduction本文档是Scala语言和编译器的快速入门介绍,适合已经有一定编程经验,且希望了解Scala可以做什么的读者。我们假定本文的读者具有面向对象编程(Object-orientedprogramming,尤其是java相关)的基础知识。ThisdocumentgivesaquickintroductiontotheScal
2、alanguageandcompiler.ItisintendedforpeoplewhoalreadyhavesomeprogrammingexperienceandwantanoverviewofwhattheycandowithScala.Abasicknowledgeofobject-orientedprogramming,especiallyinJava,isassumed.2第一个例子-Afirstexample我们使用最经典的“Helloworld”作为第一个例子,这个例子虽然并不是特别炫(fascinating),但它可以很好的展示Scala的用法,且无须涉及太多的语言特性
3、。示例代码如下:Asafirstexample,wewillusethestandardHelloworldprogram.ItisnotveryfascinatingbutmakesiteasytodemonstratetheuseoftheScalatoolswithoutknowingtoomuchaboutthelanguage.Hereishowitlooks:objectHelloWorld{defmain(args:Array[String]){println("Hello,world!")}}Java程序员应该对示例代码的结构感到很熟悉:它包含一个main方法,其参数是一个
4、字符串数组,用来接收命令行参数;main的方法体只有一句话,调用预定义的println方法输出“Helloworld!”问候语。main方法不返回值(这是一个过程方法proceduremethod),因此,该方法不必声明返回值类型。ThestructureofthisprogramshouldbefamiliartoJavaprogrammers:itconsistsofonemethodcalledmainwhichtakesthecommandlinearguments,anarrayofstrings,asparameter;thebodyofthismethodconsistsof
5、asinglecalltothepredefinedmethodprintlnwiththefriendlygreetingasargument.Themainmethoddoesnotreturnavalue(itisaproceduremethod).Therefore,itisnotnecessarytodeclareareturntype.对于包含main方法的object声明,Java程序员可能要相对陌生一些。这种声明方式引入了一个通常被称为单例对象(singletonobject)的概念,也就是有且仅有一个实例的类。因此,上例中的声明,在定义了一个名为的HelloWorld类的同
6、时,还声明了该类的一个实例,实例的名字也叫HelloWorld。该实例在第一次被用到的时候即时(ondemand)创建。WhatislessfamiliartoJavaprogrammersistheobjectdeclarationcontainingthemainmethod.Suchadeclarationintroduceswhatiscommonlyknownasasingletonobject,thatisaclasswithasingleinstance.ThedeclarationabovethusdeclaresbothaclasscalledHelloWorldanda
7、ninstanceofthatclass,alsocalledHelloWorld.Thisinstanceiscreatedondemand,thefirsttimeitisused.细心(astute,机敏的,聪明的)的读者可能会注意到,main方法并没有声明为static。这是因为Scala中不存在静态成员(无论方法还是属性,methodsorfields)这一概念,Scala使用前述的单例对象(singletono
此文档下载收益归作者所有