`
myten
  • 浏览: 133507 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Scala入门篇

 
阅读更多

 程序主入口类,基本覆盖了入门需要掌握的Scala知识。主要涵盖,变量定义,常量,类与对象,集合映射等常用方法。

 

package org.lean.scala

import org.learn.clazz.Person
import scala.collection.immutable.HashMap
import scala.io.Source
import java.io.PrintWriter
import java.io.File


object Main {
  private var myName: String = "";
  def main(args: Array[String]) {
    println("HelloWorld");
    var byte_tmp: Byte = 255.toByte
    var short_tmp: Short = 255.toShort;
    var int_tmp: Int = 255;
    var long_tmp: Long = 255.toLong;
    var dbl_tmp: Double = 255.toDouble;
    var flt_tmp: Float = 255.toFloat;
    var str_tmp: String = 255.toString();
    var bool_tmp: Boolean = 255.!=(0);

    println(str_tmp.equals(null));

    var anysTMP = 12; //表示变量
    val anysTMPl = "Good Baby"; //表示常量
    anysTMP.+=(24); //闭包式 同 anysTMP=anysTMP+24;
    println(anysTMP);
    //anysTMPl="Hello";  error,not support
    println(anysTMPl + " HELLO");

    //println(AnotherObj.myName); error,not support
    println(AnotherObj.myAge);

    //Class and Object
    var p = new Person
    p.setName("Hword");
    print(p.getName);

    //Array
    var arTmp = new Array[String](3);
    arTmp(0) = "Good World";
    arTmp(1) = "I'm Jack";
    arTmp(2) = "boast show";
    for (i <- 0 to 2) {
      println(arTmp(i))
    }
    //List
    var listTmp = List(1, 2, 3);
    println(listTmp(0));
    listTmp = 90 :: listTmp; //concat element,but not support different Type of Element
    println(listTmp(0));
    println(listTmp);
    //useful method of List
    var countl = listTmp.count { x => x > 3 }
    println(countl)
    //drop

    println(listTmp.drop(1));
    println(listTmp.dropRight(1));
    //exist check
    println(listTmp.exists { x => x == 90 })
    //filter
    println(listTmp.filter { x => x > 1 })
    //loop for all element,return boolearn result
    println(listTmp.forall { x => x > 0 })
    //loop for all with any method
    listTmp.foreach { x => println(" this is list's foreach =: " + x) }

    //map ,return self by changes
    println(listTmp.map { x => x * x })
    //build string with any string
    println(listTmp.mkString("#"))
    //reverse
    println(listTmp.reverse);
    //sort
    println(listTmp.sortWith({ (c: Int, n: Int) => c > n }))

    //Tuple Section
    val tplTmp = ("Google", "Baidu", 0x9002)
    println(tplTmp);
    println(tplTmp._1); // Note: start index is 1
    println(tplTmp._2);
    println(tplTmp._3);

    //Set And Map
    var setTmp = Set("hao123", "hao360");
    println(setTmp)
    println(setTmp + "hao163")
    var mapTmp = new HashMap[String, String]();
    mapTmp.+=("KEY1" -> "Hao123");
    mapTmp.+=("KEY2" -> "Hao321");
    println(mapTmp("KEY1"));
    println(mapTmp.get("KEY1"));

    //File's read and write
    for (line <- Source.fromFile("d.txt").getLines()) {
      println(line)
    }
    var writer:PrintWriter=new PrintWriter(new File("d.txt"));
    writer.write("Im Test Line");
    writer.close()
    //singleton
    singleObj.name="Hello Scala";
    println(singleObj.name);

  }
  object singleObj{
    var name:String="";
  }
}

 

 

package org.learn.clazz

class Person {
  private var rName: String = "";
  private var age: Int = 255;
  def getName(): String = {
    return rName;
  }
  def setName(name:String)={
    rName=name;
  }
}

 

package org.lean.scala

object AnotherObj {
  private var myName:String="Another";
   var myAge:Int=12;
}

 另外两个文件一个是单态对象定义,一个是Class定义

分享到:
评论

相关推荐

    scala入门(仅供参考)

    本篇文章主要面向有一定Java开发经验的程序员,旨在帮助他们入门Scala。 ### 1. Scala简介 Scala是由Martin Odersky设计的一种静态类型的编程语言,它的名字来源于"Scalable Language"的缩写,表明它能够从小规模...

    scala学习资料(带书签)

    **入门篇** 1. **基础语法**:Scala的基础包括变量声明、类型系统、控制结构(如if/else、循环)、函数定义等。理解这些是学习Scala的第一步。 2. **对象和类**:Scala的面向对象特性体现在类和对象上,它们是构建...

    《Scala编程开发》课程标准(高职).docx

    课程内容分为十个主要任务,包括Scala入门、面向对象编程、高阶函数、模式匹配、集合、类型参数、高级类型、隐式转换、并发编程以及Kafka的设计理念与基本架构。每个任务都有明确的知识目标和能力目标,如Scala入门...

    scala 中文教程下载

    #### 第一部分:入门篇 - **第1章:可伸展的语言** - 介绍Scala语言的设计理念和特性。 - 探讨Scala语言如何适应不同规模的软件开发项目。 - 分析Scala语言与其他语言相比的优势。 - **第2章:Scala的第一步** -...

    Getting Started with SBT for Scala

    标题中提到的“Getting Started with SBT for Scala”直接指出了文章的主题内容,即为使用SBT作为Scala项目的入门指导。SBT是Scala的构建工具(Build Tool),其全称是Simple Build Tool,主要用于Scala和Java项目的...

    scala tutorial pdf

    这篇文档是为已经有一定编程经验,特别是对Java有一定了解的程序员提供的一份快速Scala语言和编译器入门指南。Scala是一种多范式编程语言,它结合了面向对象和函数式编程的特点,由EPFL(瑞士洛桑联邦理工学院)的...

    spark从入门到实战

    ### Spark从入门到实战——SCALA编程篇 #### 一、大数据分析框架概要与Spark课程学习计划 在大数据时代,高效处理海量数据成为企业和组织的核心需求之一。Spark作为当前最受欢迎的大数据分析框架之一,以其高性能...

    大数据MapReduce Ubuntu Linux上的Hadoop Scala by Maven intellj Idea

    标题中的“大数据MapReduce Ubuntu Linux上的Hadoop Scala by Maven intellj Idea”表明,这篇文章将深入探讨如何在Ubuntu Linux操作系统上使用Scala编程语言,通过Maven构建工具来开发Hadoop MapReduce项目,并在...

    Kafka 入门基础篇.pptx

    Kafka 入门基础篇 Kafka 是 LinkedIn 公司开发的一种分布式消息队列系统,支持离线和在线日志处理。它可以实时处理大量数据,满足各种需求场景,如基于 Hadoop 的批处理系统、低延迟的实时系统、Storm/Spark 流式...

    spark零基础入门线路指导

    对于初学者来说,入门Spark需要掌握一系列的基本概念和步骤。在开始之前,建议先对Spark的使用场景、核心概念、RDD(弹性分布式数据集)的创建以及支持的语言有初步的了解。可以参考官方文档和相关教程,以便对Spark...

    入门篇!大白话带你认识 Kafka

    Kafka 使用 Scala 和 Java 编写,允许每秒处理数百万条消息,使其在大数据和流计算领域中独树一帜。 Kafka 的核心概念包括: 1. Topic(主题):主题是 Kafka 中消息的分类,类似于数据库中的表。生产者将消息发布...

    【FlinkSql篇01】FlinkSql之入门概述1

    在本文中,我们将深入探讨Apache Flink的SQL支持,即FlinkSQL的入门概述。Flink是一个批流统一的数据处理框架,它的Table API和SQL提供了一种统一的方式来处理批处理和流处理任务。Table API是Java和Scala语言内置的...

    IBM android技术文档——从入门到精通.rar

    这篇文档可能介绍了如何在Android平台上使用Scala,包括它的优势、语法特点以及与Java的互操作性。 3. **《Android多媒体框架初步分析.htm》**:Android的多媒体框架是处理音频、视频和图像的关键部分。此文档可能...

    【Spark篇01】Spark基础入门和环境安装 1

    Spark的易用性体现在其丰富的API支持,包括Java、Python和Scala,以及对交互式Python和Scala shell的支持,这使得开发者可以快速构建和测试应用。Spark的通用性在于它可以处理批处理、交互式查询、实时流处理、机器...

    java专题,教学资元 共159g

    包含:socket网络编程及实战,系统学习docker,看的见的算法 7个经典应用诠释算法精髓,一站式学习Redis 从入门到高可用分布式实践,Spring Boot 2.0深度实践之核心技术篇,Scala 学习 进击大数据Spark生态圈,剑指Java面试...

    【SparkStreaming篇01】SparkStreaming之Dstream入门1

    SparkStreaming之Dstream入门 Spark Streaming是Apache Spark中的一个组件,用于处理流式数据。它可以从多种数据源中接收数据,如Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等,并使用Spark的高度抽象原语如...

    Spark最佳学习路径-黄忠

    入门篇:在这一部分,学习者将接触Spark相关技术,并且学习在standalone模式下的安装部署。同时,本部分还将指导学习者如何设置开发环境、测试代码、程序打包以及程序运行。 生态篇:这一部分深入介绍了Spark的各个...

    SparkCore快速入门详解

    本篇文章将详细讲解SparkCore的基本概念、架构、核心功能以及如何进行快速入门。 一、SparkCore简介 SparkCore是Spark框架的基石,它提供了分布式数据处理、容错性以及内存计算的基础。SparkCore通过RDD(Resilient...

Global site tag (gtag.js) - Google Analytics