下载和安装Scala

前往http://www.scala-lang.org/downloads下载Scala在各个平台的安装包,安装后即可在运行scala编译器和交互式命令行环境(interactive interpreter)。除此之外为了更加方便地编程,可以选择安装以下工具:

  • 安装编译工具Sbt,Sbt类似于Java的Ant,http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html

    • 在windows下,下载msi格式的文件,安装后,进入安装目录,执行sbt.bat文件,会下载一些依赖并配置。好了后,检查下环境变量是否已经配置对了

Scala交互式编程环境

  • 在命令行中输入scala并回车,即可进入交互式编程环境
  • $ scala
    Welcome to Scala version 2.8.1.
    Type in expressions to have them evaluated.
    Type :help for more information.
    scala>
    scala> 1 + 2 //简单的计算
    val msg = "Hello, world!"   //定义常量
    scala> println("Hello, world!")   //打印字符串
    var greeting = "Hello, world!" //定义变量 }
    scala> def max(x: Int, y: Int) = if (x > y) x else y  //定义函数
    scala> max(3, 5) //运行函数

在Eclipse中创建Scala程序

  1. 在Eclipse中创建一个Scala Project,名称为Helloworld
  2. 在projet中创建一个Package
  3. 然后新建一个Scala Object,例如test.scala
  4. code
    package main.scala
    
    object Hi {
    def main(args: Array[String]) = println("Hello world!")
    }
  5. 在Eclipse中运行test.scala
  6. 上面的代码展示了如何在Scala中创建一个可执行程序

使用Scala Worksheet

  1. 使用Worksheet的好处是:不用离开Eclipse,就可以像使用交互式Shell一样进行代码调试
  2. 在上面的Helloworld项目中新建一个Scala Worksheet,取名为worksheetest
  3. 在Eclipse中会生成一个worksheetest.sc的文件,并且会预定义一个worsheetest的object
  4. 在这个object里面输入任意Scala命令,例如如下代码
  5. package main.scala
    
    object worksheetest {
    println("Hello world!") 1+1 }
  6. 每次修改并保存文件时,里面的代码会自动运行,并自动在界面上打印结果

  7. package main.scala
    
    object worksheetest {
    println("Hello world!") //> Hello world! 1+1 //> res0: Int(2) = 2 }
  8. Worksheet只能计算表达式,不能运行程序,个人觉得还没shell好用

使用Sbt

  • 使用命令行进入上面Helloworld项目的文件目录,运行sbt命令compile和run
  • $ cd /Users/cyzhao/Documents/workspace/helloworld
    $ sbt
    [info] Set current project to default-6aa3b3 (in build file:/Users/cyzhao/Documents/workspace/helloworld/)
    > compile
    [success] Total time: 1 s, completed 2013-4-29 8:16:49
    > run
    [info] Running main.scala.Hi
    Hello world!
    [success] Total time: 0 s, completed 2013-4-29 8:16:51
    >
  • bt默认对文件目录的要求是
    • Sources in the base directory
    • Sources in src/main/scala or src/main/java
    • Tests in src/test/scala or src/test/java
    • Data files in src/main/resources or src/test/resources
    • jars in lib
  • Sbt的详细文档见:http://www.scala-sbt.org/release/docs/Getting-Started/Hello.html

参考:http://my.oschina.net/chengye/blog/126461

scala学习笔记(1)的更多相关文章

  1. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  2. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  3. Scala学习笔记之:tuple、array、Map

    [TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成 ...

  4. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  5. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  6. 原创:Scala学习笔记(不断更新)

    Scala是一种函数式语言和面向对象语言结合的新语言,本笔记中就零散记下学习scala的一些心得,主要侧重函数式编程方面. 1. 以递归为核心控制结构. 实现循环处理的方式有三种:goto,for/w ...

  7. scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类

    一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person ...

  8. scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步

    继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小 ...

  9. scala学习笔记

    一 入门 为了增加编程趣味和技能,学习新语言,体会函数式编程和简易的并发管理模型,了解日渐活跃的Spark,尝试下Scala.Scala = Scalable language,作者是Martin O ...

  10. Scala学习笔记1(安装)

    到 官网下载scala tar包  http://www.scala-lang.org/download/ mac Finder里双击解压. 改名成scala 进命令行, mv ~/Downloads ...

随机推荐

  1. 做bbs论坛项目的收获(1)

    1. 当两张表出现关联的时候,关联的外键,千万不能是汉字,千万不能使汉字,因为这个问题,直接导致项目进行不下去..... 顺便记录一下知识点(一) 当用frameset设置网页的结构的时候 eg: & ...

  2. 使用CodeIgniter框架搭建RESTful API服务

    使用CodeIgniter框架搭建RESTful API服务 发表于 2014-07-12   |   分类于 翻译笔记   |   6条评论 在2011年8月的时候,我写了一篇博客<使用Cod ...

  3. 解决Ecshop因为动态ip问题登录后台自动退出

    解决Ecshop因为动态ip问题登录后台自动退出 PHP  铁匠  2年前 (2013-07-21)  1130℃  0评论 修改lib_base.php文件real_ip()函数,添加以下代码即可解 ...

  4. MVC 扩展方法特点

    .NET MVC 3中扩展方法特点: (1)扩展类的名称以Extensions结尾: (2)扩展类的类型是static: (3)扩展方法至少有一个参数,第一个参数必须指定该方法作用于哪个类型,并且该参 ...

  5. sql_action

    CREATE TABLE w SELECT * FROM existing_table 2 日期x idm valuexm 日期x idn  valuexn 日期y idm  valueym 日期y ...

  6. Kafka 0.10.0

    2.1 Producer API We encourage all new development to use the new Java producer. This client is produ ...

  7. ArcGIS Server发布服务,报错00032

    错误00032 独立表数据源无法访问 00032: 修复已断开的数据连接,具体做法是将每个独立表的数据源都设置为正确的位置. 或者,如果不需要该表,将其从文档中移除. 建议在ArcMap中重新加载数据 ...

  8. go access database demo

    package main import ( "database/sql" "fmt" _ "github.com/lib/pq" " ...

  9. MVC HTML辅助类常用方法记录

    (1)@Html.DisplayNameFor(model => model.Title)是显示列名, (2)@Html.DisplayFor(modelItem => item.Titl ...

  10. Largest Number || LeetCode

    #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 1000 int cm ...