`

Scala基本语法

 
阅读更多

windows版本

C:\Program Files\scala\bin>scala -version
Scala code runner version 2.10.3 -- Copyright 2002-2013, LAMP/EPFL

基本类型及操作

import scala.collection.mutable.Set
import scala.collection.immutable.HashSet
import scala.collection.mutable.Map

object Hello {
	//函数
	def max(x: Int, y: Int): Int = {
		if(x > y) x
		else y
	}

	//循环:while / for / foreach三种方式
	def loop(args: Array[String]) { 
        var i = 0  
        while(i < args.length) {  
                println(args(i))  
                i = i + 1  
        }  
  /*
        for(i <- 0 until args.length) {  
                println(args(i))  
        }
  
        args.foreach { arg =>  
                println(arg)  
        }
	*/}

	//数组
	def useArray(){
		val greetStrings = new Array[String](3)//不推荐这种创建数组方法
		greetStrings(0) = "Hello"
		greetStrings(1) = ", "
		greetStrings(2) = "world!\n"

		greetStrings.update(0, "Hi")//同上
		greetStrings.update(1, ", ")
		greetStrings.update(2, "world!\n")

		greetStrings(0) = "Hey"

		for (i <- 0 to 2)
			print(greetStrings(i))

		val betterStrings = Array("Hello",", ","World\n")//推荐此类用法
	}

	//列
	def useList(){
		val oneTwo = List(1, 2)
		val twoThree = List(2, 3)
		val oneTwoThree = 1 :: twoThree //拼接元素和数组
		val oneTwoThreeFour = oneTwo ::: twoThree //拼接数组和数组

		val thrill = "Will" :: "fill" :: "until" :: Nil
		println(thrill) // List(Will, fill, until)

		thrill.drop(2)  //Until
		thrill(2) //Until
		thrill.dropRight(2) //Will
		thrill.count(s => s.length == 4) // return 2
		thrill.exists(s => s == "until") // true
		thrill.filter(s => s.length == 4) // List("Will", "fill")
		//thrill.remove(s => s.length == 4) // List("until")
		thrill.forall(s => s.endsWith("l")) // true (all endwith l)
		thrill.head // Will
		thrill.init // return all without last List("Will", "fill")
		thrill.tail // return all without first List("fill", "until")
		thrill.length // 3
		thrill.last // until
		thrill.isEmpty // false
		thrill.map(s => s + "y") // List("Willy", "filly", "untily")
		thrill.mkString(", ") // "Will, fill, until"
		thrill.reverse // List("until", "fill", "Will")
		//thrill.sort((s, t) => s.charAt(0).toLowerCase < t.charAt(0).toLowerCase) // List("fill", "until", "Will") 编译有错


	}

	//关联数组
	def useOther(){
		//tuple 可以存放不同类型
		val pair = (99, "Luftballons")
		println(pair._1)
		println(pair._2)

		//sets
		val movieSet = Set("Hitch", "Poltergeist")
		movieSet += "Shrek"
		println(movieSet)

		//hashset
		val hashSet = HashSet("Tomatoes", "Chilies")
		println(hashSet + "Coriander")

		//map
		val treasureMap = Map[Int, String]()
		treasureMap += (1 -> "Go to island.")
		treasureMap += (2 -> "Find big X on ground.")
		treasureMap += (3 -> "Dig.")
		println(treasureMap(2))
	}

	def main(args: Array[String]): Unit = {
		//变量|常量
		var msg1 = "message one" //scala自动匹配类型
		var msg2 : java.lang.String = "message two" //scala指定类型
		var msg3 : String = "message three" //可以直接引用java.lang包
		msg1 = "message one changed"
		val c_msg1 = "constant message one"
		//c_msg1 = "constant message one cann't be changed"

		//使用java类
		val big = new java.math.BigInteger("12345")

		loop(args)
		println(max(3,4))

		useArray()
		useList()
		useOther()
	}
}

 类,单例(需要编译运行scalac scala)

class Tool {
	def max(x: Int, y: Int): Int = {
		if(x > y) x
		else y
	}
}

object Tool2{
	def min(x: Int, y: Int): Int = {
		if(x < y) x
		else y
	}
}

object Hello {
	//函数
	def main(args: Array[String]): Unit = {
		println("hello")

		val t = new Tool()
		println(t.max(3,4))
		println(Tool2.min(3,4))
	}
}

 

分享到:
评论

相关推荐

    Scala基础语法课件汇总整本书电子教案全套课件完整版ppt最新教学教程.pptx

    Scala 基础语法课件汇总整本书电子教案全套课件完整版ppt最新教学教程 以下是根据给定的文件信息生成的相关知识点: Scala 介绍 Scala 是一种多范式的编程语言,由 Federico Mena 和 Martin Odersky 于 2001 年...

    读书笔记:快速入手的Scala基础语法学习笔记.zip

    读书笔记:快速入手的Scala基础语法学习笔记

    Scala语法入门.pdf

    虽然Scala是基于Java的,但Scala提供了一套与Java不同的语法和类库,这要求学习Scala的开发者了解其与Java的相同点和不同点。 为了使用Scala进行开发,需要进行环境搭建。这包括安装Java开发工具包(JDK)版本1.8或...

    spark源码之scala基础语法demo

    scala是一种基于JVM的面向对象的函数编程,scala编程相对于java而言代码整洁、开发效率更高。 其中scala优点主要有: 1:面向对象,可以定义class,通过new调用实例对象使用。 2:兼容java,在scala中可以直接调用...

    Notepad++里设置scala的语法高亮(包含使用说明)

    值得注意的是,虽然Notepad++提供了基本的语法高亮,但相比专门的Scala集成开发环境(IDE),如IntelliJ IDEA或Eclipse,其功能可能较为有限。如果你需要更完整的调试、测试和重构支持,建议还是使用专业的IDE。但...

    Scala语法简明教程

    ### Scala语法简明教程知识点详解 ...通过以上内容,我们不仅了解了Scala的历史背景和发展现状,还掌握了Scala的基础语法知识及其与其他语言的异同。这对于希望快速入门Scala的开发者来说是非常宝贵的资料。

    Scala 基础语法

    Scala 基础语法 如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法。 Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的。 我们可以认为 Scala 程序是...

    Scala函数式编程专题--scala基础语法介绍

    Scala 函数式编程专题 -- Scala 基础语法介绍 本文主要介绍 Scala 基础语法的相关知识点,旨在帮助读者更好地理解和学习 Scala 编程语言。 一、Scala 语言简介 Scala 是一种现代化的、多范式的编程语言,运行于 ...

    scala 语法参考中文pdf

    这两份文档为学习Scala提供了一套全面的资源,涵盖了从基础到高级的各种主题,无论你是初学者还是有经验的开发者,都能从中受益匪浅。通过深入阅读和实践,你可以掌握Scala的强大功能,并应用于实际的软件开发项目中...

    Notepad++里设置scala的语法高亮_20160323.docx

    在本文中,我们将探讨如何在Notepad++中设置Scala语言的语法高亮,以及相关的配置细节。Notepad++是一款流行的免费源代码编辑器,支持多种编程语言,包括Scala。通过自定义用户定义的语言(User Define Lang)配置,...

    大数据-Scala编程基础_教学指导

    在课程内容上,Scala编程基础分为三个模块:Scala基础语法、Scala中的集合和函数以及Scala面向对象。每个模块都旨在帮助学员理解Scala编程的核心概念,并能在实际开发中运用。 第一模块,Scala基础语法,是学习...

    一些scala实例

    3. **Scala基本语法:** - **模式匹配:** Scala的模式匹配功能允许我们对值进行解构,便于处理复杂数据结构。 - **case类:** Scala的case类简化了创建不可变对象的过程,并且与模式匹配紧密配合。 - **高阶函数...

    scala 基础 和flink基础,

    scala 基础语法,flink的使用方式

    Swift和Scala语法的比较

    Swift的字面量语法包含整数、浮点数和字符串,而Scala也支持这些基础类型的字面量。不过Scala支持字符串插值,可以将变量或表达式嵌入字符串中,例如使用`$x+$y=${x+y}`。 Swift使用数组和字典字面量语法,而Scala...

    scala基础知识文档

    #### 二、Scala基础语法 ##### 1. 声明值和变量 Scala中的值和变量可以通过`val`和`var`关键字进行声明: - `val`: 定义一个不可变的值(即常量)。 - `var`: 定义一个可变的变量。 ```scala val num = 0 var ...

    Scala(中文完整版).zip

    Scala基本语法** Scala的语法简洁而富有表现力,支持变量声明、常量、函数定义、类和对象的创建。例如,`val`用于声明不可变变量,`var`用于声明可变变量。函数定义可以使用匿名函数和高阶函数,类和对象通过case ...

    scala编程基础

    这包括掌握Scala的基础语法以及如何结合Spark进行数据处理。 2. **中级目标**:能够独立完成一个简单的Spark通信框架的设计与实现。这不仅要求学生理解Spark的工作原理,还需要具备一定的架构设计能力。 3. **高级...

Global site tag (gtag.js) - Google Analytics