SCALA常规练习A

package com.hengheng.scala

import scala.util.control.Breaks._
import scala.util.Random

object Application{
  def main(args : Array[String]) {
    println("Hello, World!")
    println(addSayHelloFirst(5, 10))
    val I = List(1, 2, 3)
    I.map((i) => {
      println("HI")
      println(i + 9)
    })

  }
  def addSayHelloFirst(i : Int, j : Int) : Int = {
    println("Hello")
    i + j
  }
  def add(i : Int, j : Int) = i + j
  val add2 = add(2, _ : Int)
  println(add2(99))
  def devide(i : Int)(j : Int) : Int = i / j
  val devideBy2 = devide(_ : Int)(2)
  println(devideBy2(100))
  var _100Devide = devide(100)(_ : Int)
  println(_100Devide(10))
  var k = 5
  if(k > 10) {
    println("k is more than 10.")
  }
  else if(k < 0) {
    println("k is less than 0")
  }
  else {
    println("k is between 1 and 10")
  }
  var i = 0
  var sum = 0
  while(i < 10) {
    sum += i
    i += 1
  }
  println(sum)
  sum = 0
  for (i <- 1 to 9) {
    sum += i
  }
  println(sum)

  breakable {
    while(true) {
      val r = new Random()
      val i = r.nextInt(10)
      println("i == " +i)
      if(i == 5) {
        break
      }
    }
  }
}

  输出:

101
50
10
k is between 1 and 10
45
45
i == 9
i == 0
i == 4
i == 9
i == 3
i == 1
i == 2
i == 1
i == 3
i == 5
Hello, World!
Hello
15
HI
10
HI
11
HI
12

时间: 2024-10-24 11:27:24

SCALA常规练习A的相关文章

SCALA常规练习B

package com.hengheng.scala class Point(val x : Int, val y : Int) { val isOriginal : Boolean = { x == 0 && y == 0 } } class TalkPoint(x : Int, y : Int) extends Point(x, y) { def talk() = { println("My position is (" + x + "," +

SCALA常规练习C

package com.hengheng.scala abstract class Animal { def walk(speed : Int) def breathe() = { println("Aninamal breathes.") } } trait Flyable { def hasFeather = true def fly } trait Swimable { def swim } class FishEagle extends Animal with Flyable

【Scala】Scala之Classes and Properties

一.前言 前面学习了控制结构,下面学习Scala的Class和Properties. 二.Class&Properties 尽管Scala和Java很类似,但是对类的定义.类构造函数.字段可见性控制等则不相同,Java更为冗长,Scala精炼.本章将通过Scala的构造函数工作原理来理解Scala的类和字段,当申明类构造函数参数和使用var.val.private关键字来修饰类的字段时,Scala编译器将会为你生成代码,根据字段修饰符不同,Scala编译器会生成不同的存取函数,本章也会展示如何重

scala学习笔记2

一.算术和操作符重载 a + b 是如下方法的简写: a.+(b) 在scala中你可以使用任何符号来为方法命名.比如BigInt类就定义了一个/%的方法,该方法返回一个对偶,对偶的内容是除法操作得到的商和余数. 通常来说,你可以用 a 方法 b 作为以下代码的简写 a.方法(b) 这里的方法是一个带有两个参数的方法(一个隐式的和一个显示的).例如1.to(10)可以简写成1 to 10 scala语言并没有提供++和--操作符,我们需要使用+=1和-=1 scala认为Int类是不可变的. 对

[翻译]The Neophyte&#39;s Guide to Scala Part 12: Type Classes

The Neophyte's Guide to Scala Part 12: Type Classes 过去的两周我们讨论了一些使我们保持DRY和灵活性的函数式编程技术,特别是函数组合,partial function的应用,以及currying.接下来,我将会继续讨论如何使你的代码尽可能的灵活. 但是,这次我们将不会讨论怎么使用函数作为一等对象来达到这个目的,而是使用类型系统,这次它不是阻碍着我们,而是使得我们的代码更灵活:你将会学到关于 type classes 的知识. 你可能会觉得这是一

scala学习笔记1

一.REPL scala解释器读到一个表达式,对它进行求值,将它的打印出来,接着再继续读下一个表达式.这个过程被称作 读取-打印-循环,即REPL. 从技术上讲,scala程序并不是一个解释器.实际发生的是,你输入的内容被快速的编译成字节码,然后这段字节码交由java虚拟机执行.正因如此,大多数scala程序员更倾向将它称作REPL. 二.声明值 2.1val定义的值实际上是一个常量,你无法改变它的内容. scala> val result = 8*2 result: Int = 16 scal

scala语言与java的区别 (1)

scala支持关联映射,如可以用(key -> value)表示一个键值对 scala中的所有类型都是对象,包括基本数据类型 scala中的case语句用来判断接收的消息,比java中的switch...case...更专注 receive{    case msg => action()    } scala行动类实现了线程之上的并发抽象,通过发送消息相互通信,每个行动类都自动维护一个消息队列,并且实现发送消息和接收消息的基本操作. receriver ! msg scala是静态类型的,也

scala函数进阶篇

1.求值策略scala里有两种求值策略Call By Value -先对函数实参求值,在函数体中用这个求出的参数值.Call By Name -先不对函数实参求值,而是函数实参每次在函数体内被用到时都会求值.scala通常使用Call By Value 如果函数形参类型以 =>开头,那么就是在使用Call By Namedef foo(x : Int)= x         //Call By Valuedef foo(x : => Int)= x   //Call By Name def l

DT梦工厂 第25课 Scala中curring实战详解

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/dHz5JKJxurM/优酷:http://v.youku.com/v_show/id_