Scala入门

scala教程   http://twitter.github.io/scala_school/zh_cn/index.html

API文档:  http://www.scala-lang.org/api/current/#package

一、脚本运行

进入Spark/bin目录下,启动spark-shell脚本,进入scala编译环境

141559_grDK_2874009.png

141619_koV6_2874009.png

简单测试,输入1+1

141702_ONGA_2874009.png

输入println("hello")

141736_518D_2874009.png

1、for循环 

1.1 for(i <-0 to j):包含j

0+1+2=3

143417_lc3t_2874009.png

1.2 for(i <-0 until j):不包含j

0+1=1

143500_CKZO_2874009.png

1.3 for循环遍历list列表

143759_2Or4_2874009.png

2、Map

 val colors1 = Map("red" -> "红色",
                   "black" -> "黑色", 
                   "pink" -> "粉红色"
                   )
 val colors2 = Map("blue" -> "蓝色",
                   "yellow" -> "黄色",
                   "red" -> "红色"
                   )
 

1.1  def ++(xs: Map[(A, B)]): Map[A, B]

连接两个 Map,Map 合并时会移除重复的 key。

val colors =colors1.++(colors2 );
 println(colors )

152802_l8Yj_2874009.png

重复的red->红色被移除了一个

1.2 def -(elem1: A, elem2: A, elems: A*): Map[A, B]

移除key为elem1,elem2等元素

val colors =colors1.-("black");
 println(colors )

153353_rjKm_2874009.png

1.3 abstract def +=(kv: (A, B)): Map.this.type 向map中田间键值对

154603_DCfB_2874009.png

 

Adds a new key/value pair to this map.

二、编译器中运行

下载scala的eclipse编辑器

新建scala工程,新建scala对象。

运行scala文件,输出结果“Hello world”

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

 

  • 包的引用
import java.awt.Color  // 引入Color
import java.awt._  // 引入包内所有成员
import java.awt.{Color, Font}//引入包中部分成员
import java.util.{HashMap => JavaHashMap}// 重命名成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了
  • 方法的定义
  /**
   * 方法的定义,返回值Int
   */
  def addInt(a: Int, b: Int): Int = {
    var sum: Int = 0;
    sum = a + b;
    return sum;
  }

  /**
   * 方法的定义,没有返回值
   */
  def printlnStr(): Unit = {
    println("hi boy");
  }
  • APP

继承APP之后,会调用APP默认的main函数,不用再重写

object HelloWord extends App{
   println("Hello, world! 123")
}
/**输出结果
*Hello, world! 123
/
  val  executionStartLong

The time when the execution of this program started, 程序执行的开始时间

object HelloWord extends App{ 
   var time = this.executionStart
   println("time="+time)

}

//输出结果  time=1471834954153
def reverseArray[T]

Returns new mutable indexed sequence with elements in reversed order.对数组进行倒序

val numbers = Array(1, 2, 3, 4)
val reverseList = numbers.reverse;
println("reverseList(0)="+reverseList(0))
println("reverseList(1)="+reverseList(1))
println("reverseList(2)="+reverseList(2))
println("reverseList(3)="+reverseList(3))

/**输出结果
reverseList(0)=4
reverseList(1)=3
reverseList(2)=2
reverseList(3)=1
*/

数组遍历:

  for (i <- 0 until list3.length) {//表示i从0 到length-1
    println(list3(i));
  }

/**
i <-区间
*/

 

转载于:https://my.oschina.net/u/2874009/blog/732985

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值