论坛首页 Java企业应用论坛

Scala 介绍之 HelloWorld

浏览 9650 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (16) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-30   最后修改:2009-09-12

Scala最近受到了大量关注

   Scala语言的名称来自于“可伸展的语言”Scala 是一种函数对象混合的语言。它可以运行在Java 平台上,Scala程序会被编译为JVM的字节码。它们的执行期性能通常与Java程序一致。Scala代码可以调用Java方法,访问Java字段,继承自Java类和实现Java接口

    下载并安装 Scala

     可以从 Scala 主页: http://www.scala-lang.org/ 下载 Scala ,截止到目前为止,最新的发行版是 2.7.5-final,同时也提供了IDE的支持插件,EclipseScala的插件下载地址为:http://www.scala-lang.org/node/94,也可以通过Eclipse Update Manager 的方式下载:http://www.scala-lang.org/scala-eclipse-plugin (现在的Eclipse 插件支持的好像比较差劲)

Scala的下载压缩包解压,比如解压地址是:C:\Program Files\Java\scala-2.7.5,然后设置环境变量,将SCALA_HOME 设置为:C:\Program Files\Java\scala-2.7.5,SCALA_HOME\bin 添加到Path环境变量中,打开命令行输入:scalac -version 测试,如果能够正确输入版本信息就OK了。


    开始认识Scala

    在计算机科学领域大家都达成了一个默契,通常都是使用“HelloWorld" 作为演示程序,这里也不例外,Scala的语法和Java还是存在很大不同,就像国外的一位大牛批判Scala"为了不同而不同",为何不能像Groovy那样采用和Java接近的语法,如果你是从JDK 转到 Scala,学习Scala 的感觉可能会很不同,也可能有排斥它的情绪,其实,通常有这种感觉可能是因为对它不熟悉,如果深入了解背后的设计意图,可能会改变你现在的观点。

   下面来看一下Java中的 HelloWorld写法: 

 public class HelloWorld {
    public static 
void main(String[] args) {
        System.out.println(
"HelloWorld");
    }
  }

    Scala 的 HelloWorld : 

1 object HelloWorld {
2     def main(args: Array[String]) {
3        System.out.println("HelloWorld");
4     }
5   }

    这里的Scala的声明类的方式和Java相同,但Scala通过object来定义单例对象,在方法块中使用“def“开始函数的定义,接着声明函数名,在括号中指定参数列表,参数的声明方式是参数名:参数的类型,方法的返回值类型是在函数名后的括号后面指定的,比如你声明一个无参数的方法,返回值类型为Int可以这样写:def A():Int = {//方法内容}; 上面的main函数显示的指定返回值,系统默认返回值类型为Unit,相当于Java中的Void,不过Unit返回类型在最新的版本中已经置为@Deprecated 了,也就是说不用显示的指定返回类型Unit了,这样方法就简洁了许多。

   这里只是比较了ScalaHelloWorld写法,通过这么简单的任务显然和Java进行代码简洁性的PK是分不出高下。如果想看到更精彩的对决,建议参考Scala官方网站上的文档:文档:http://www.scala-lang.org/node/197  例子:http://www.scala-lang.org/node/219  ,IBM的官方网站也有文章对Scala进行详细的介绍 http://www.ibm.com/developerworks/cn/java/j-scala/ 

   发表时间:2009-07-30  
真是无语: 完整内容请参考: http://www.blogjava.net/vwpolo/archive/2009/07/30/Scala.html
0 请登录后投票
   发表时间:2009-07-30  
最近也看了一些scala的资料,在语法上,比Java简单好用不少,如今JVM上真是百花齐放阿。有了那么多的动态语言。这边又发展起来一个静态语言
0 请登录后投票
   发表时间:2009-07-31  
meladet 写道
最近也看了一些scala的资料,在语法上,比Java简单好用不少,如今JVM上真是百花齐放阿。有了那么多的动态语言。这边又发展起来一个静态语言

Scala 提供了闭包的功能,语法非常的灵活,
0 请登录后投票
   发表时间:2009-07-31  
我是 hello world 达人:
print("hello world")


存为 h.scala
scala h.scala

即可 ……
0 请登录后投票
   发表时间:2009-09-11  
vwpolo 写道

 

   这里的Scala的声明类的方式和Java不同,Scala通过object来定义

 

 

楼主这块说的好像不太对吧,scala里的类还是用class定义的。因为scala里没有静态成员, public static void main 的替代方案就是定义一个 object (单例对象:singleton object)。不能用new来实例化一个单例对象,通过 [单例对象名].[方法名] 来访问成员。

0 请登录后投票
   发表时间:2009-09-12  
Aryang 写道
vwpolo 写道

 

   这里的Scala的声明类的方式和Java不同,Scala通过object来定义

 

 

楼主这块说的好像不太对吧,scala里的类还是用class定义的。因为scala里没有静态成员, public static void main 的替代方案就是定义一个 object (单例对象:singleton object)。不能用new来实例化一个单例对象,通过 [单例对象名].[方法名] 来访问成员。


   不好意思,确实是我弄错了,Scala 是通过 object 来声明一个单例对象对象的,也可以使用class 来声明一个类

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics