SCALA 方法与函数 技术教程文章

强制使scala函数产生“副作用”【代码】

1//2 def swap(arr:Array[Int],a:Int,b:Int)={3 val tmp = arr(a)4 arr(a)=arr(b)5 arr(b)=tmp6 }7 def shuffle(arr:Array[Int])={8 val t = new Random()9for(i <- (1 to arr.length-1).toArray.reverse) 10 swap(arr,i,t.nextInt(i+1)) 11 } 原文:http://www.cnblogs.com/xiaocun/p/5531457.html

scala函数用法【代码】

直接上代码. package com.test.scala.testobject Function {def main(args: Array[String]): Unit = {println(abs(0));println(add(5,6))println(addStr("too you"))println(addStr("I love you","[","]"))println(sum(1,2,3,5))println(sum(1 to 5 : _*))println(printStr())}//定义一个函数,函数的最终结果也是一个值def abs(a:Int)=if(a>1) "hello" else "i love go";//定义一个拥有返回值的函数,该例子返回的a+b的值def add(a...

Scala的几种高阶函数【代码】【图】

Scala中是函数式编程和Java面向接口编程有很大不同,这些函数在使用方式上并不太难。高阶函数,也就是能够接收另外一个函数作为参数的函数。假如现在有一个需要是将List集合中的每个元素变为原来的两倍,现在来对比Java方式实现和Scala方式实现区别Java方式实现,先将集合中的每个元素遍历出来,然后再乘以2,塞到另外一个集合中ArrayList<Integer> list1 = new ArrayList<Integer>(3, 5, 7);ArrayList<Integer> list2 = new Array...

Scala 函数入门之默认参数和带名参数【图】

Scala 默认参数在Scala中,有时我们调用某些函数时,不希望给出参数的具体值,而希望使用参数自身默认的值,此时就定义在定义函数时使用默认参数。 def sayHello(firstName: String, middleName: String = "William", lastName: String = "Croft") = firstName + " " + middleName + " " + lastName 如果给出的参数不够,则会从作往右依次应用参数 Scala 与 Java实现默认参数的区别Java:public void sayHello(String name, int a...

学习Scala:Scala中的字段和方法

本文基于class字节码来分析在Scala语言中, 一个类中的字段和方法是如何实现的, 并且对比和java实现方式的区别。首先看一段简单的源码:class FieldMethodTest{private var i = 0private val j = 0 def add() : Int = i + j}这个类很简单, 其中有两个字段和一个方法:i字段被声明为var, 是可变的,类似于java中的普通变量;j字段被声明为val, 是不可变的, 类似于java中的final , 一旦被初始化, 就不能被改变;add方法没有...

Scala 函数入门之过程、lazy值和异常

Scala 过程 在Scala中,定义函数时,如果函数体直接包裹在了花括号里面,而没有使用=连接,则函数的返回值类型就是Unit。这样的函数就被称之为过程。过程通常用于不需要返回值的函数。 过程还有一种写法,就是将函数的返回值类型定义为Unit。 def sayHello(name: String) = "Hello, " + name def sayHello(name: String) { print("Hello, " + name); "Hello, " + name } def sayHello(name: String): Unit = "Hello, " + name la...

Scala:用于Java的轻量级函数式编程【图】

Scala为Java开发提供了轻量级的代码选项,但是学习过程可能会很艰难。了解有关Scala的知识以及是否值得采用。 基于Java的语言通常涉及冗长的语法和特定于领域的语言,用于测试,解析和数值计算过程。这些事情可能是开发人员的祸根,因为成堆的重复代码需要开发人员花费更多的时间进行梳理才能发现错误。 作为一种通用的编程语言,Scala可以通过结合面向对象的样式和功能样式来帮助减轻这些问题。为了减轻语法复杂性,Scala还将命...

SQL----Scalar 函数【代码】

UCASE() 函数 UCASE 函数把字段的值转换为大写。 SQL UCASE() 语法 SELECT UCASE(column_name) FROM table_nameSQL UCASE() 实例 我们拥有下面这个 "Persons" 表:IdLastNameFirstNameAddressCity1 Adams John Oxford Street London2 Bush George Fifth Avenue New York3 Carter Thomas Changan Street Beijing现在,我们希望选取 "LastName" 和 "FirstName" 列的内容,然后把 "LastName" 列转换为大写。 我们使用如下 SQL 语句: ...

scala在Java中调用scala方法

例如在scala中的oject写个方法返回一个字符串. 该方法在java代码中使用.?好处: scala支持多行字符, 以及字符串插值Scala和Java方法的相互调用https://blog.csdn.net/u010398771/article/details/78885009

SQL 函数:Aggregate、Scalar函数介绍

SQL 拥有很多可用于计数和计算的内建函数。SQL Aggregate 函数 SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。 有用的 Aggregate 函数:AVG() - 返回平均值 COUNT() - 返回行数 FIRST() - 返回第一个记录的值 LAST() - 返回最后一个记录的值 MAX() - 返回最大值 MIN() - 返回最小值 SUM() - 返回总和SQL Scalar 函数 SQL Scalar 函数基于输入值,返回一个单一的值。 有用的 Scalar 函数:UCASE() - 将某个字段转换为大...

Scala的函数式编程【代码】【图】

Scala的函数式编程? Scala的函数式编程的特点 ?? - 高阶函数?? - 闭包?? - 模式匹配 可参考:http://blog.51cto.com/14048416/2337136?? - 单一赋值?? - 延迟计算?? - 类型推导?? - 尾部调用优化?? - 隐式转化??这篇博文重点介绍:高阶函数、闭包、隐式转化。? 1. 高阶函数 ?? 高阶函数主要有两种:将一个函数当做另外一个函数的参数和返回值是函数的函数。高阶函数的定义: object Test01 { def main(args: Array[String]): Unit...

IDEA上使用Scala编程方法【代码】【图】

一、获取IDEA 很简单直接在官网上下载:https://www.jetbrains.com/idea/,大家可以下载社区版,学生可以认证获取正版,也可自行破解。下载完按照步骤一步一步来就可安装成功。 二、获取Scala的JDK 这个也是直接去官网上下载:https://www.scala-lang.org/选择第二个msi已经编译好的文件,但是不知道为啥我的电脑只能装2.11版本的,大家可自行选择版本。 下载完双击程序一步一步来就可完成JDK的安装。 三、配置JDK环境 1.首先进入控...

Scala(或Java)对HBase访问进行烫洗的替代方法

有人可以推荐一个好的解决方案(框架)来从Scala(或Java)应用程序访问Hadoop集群上的HBase吗? 到现在为止,我正朝scalding方向前进.我获得的原型允许我将scalding库与Maven相结合,并将’scilding job JAR与’library’代码包分开.这反过来又允许我从外部集群运行基于scalding的Hadoop作业,每个作业的开销最小(‘库’代码只在更改时才会发布到集群’分布式缓存(很少需要),因此我可以快速加载作业代码) . 现在我实际上开始玩HBase本身,...

Scala 基础(十):Scala 函数式编程(二)基础(二)过程、惰性函数、异常【代码】【图】

1 过程 将函数的返回类型为Unit的函数称之为过程(procedure),如果明确函数没有返回值,那么等号可以省略 注意事项和细节说明 1)注意区分: 如果函数声明时没有返回值类型,但是有 = 号,可以进行类型推断最后一行代码。这时这个函数实际是有返回值的,该函数并不是过程。 2)开发工具的自动代码补全功能,虽然会自动加上Unit,但是考虑到Scala语言的简单,灵活,最好不加. 2 惰性函数 惰性计算(尽可能延迟表达式求值)是许多函...

PHP警告Cannotuseascalarvalueasanarray的解决方法_php技巧

看到php的错误日志里有些这样的提示: [27-Aug-2011 22:26:12] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14 [27-Aug-2011 22:26:18] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14 检查源程序,大概是下面这样子: 代码如下:$arr_hx = $mem->get(hx); if(!$arr_hx) { $arr_hx[‘a] = b; $mem->set(hx,$arr_hx); } 基本明白了,在$mem->get没有...

scalarPHP警告Cannotuseascalarvalueasanarray的解决方法

看到php的错误日志里有些这样的提示: [27-Aug-2011 22:26:12] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14 [27-Aug-2011 22:26:18] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14 检查源程序,大概是下面这样子: 代码如下:$arr_hx = $mem->get(hx); if(!$arr_hx) { $arr_hx[‘a] = b; $mem->set(hx,$arr_hx); } 基本明白了,在$mem->get没有得...

5. Scala函数式编程的基础【图】

5.1 函数式编程内容及介绍顺序说明 5.1.1 函数式编程内容-函数式编程基础函数定义/声明函数运行机制递归(难点,[最短路径,邮差问题,迷宫问题,回溯])过程惰性函数和异常 -函数式编程高级值函数(函数字面量)高阶函数闭包应用函数柯里化函数,抽象控制...5.1.2 函数式编程介绍顺序说明 1) 在Scala中,函数式编程和面向对象编程融合在一起,学习函数式编程需要oop的知识,同样学习oop需要函数式编程的基础2) 介绍顺序:函数式编程基...

Scala编程之惰性函数【代码】

一、为什么需要惰性函数 惰性计算(尽可能延迟表达式求值)是许多函数式编程语言的特性。惰性集合在需要时提供其元素,无需预先计算它们,这带来了一些好处。首先,您可以将耗时的计算推迟到绝对需要的时候。其次,您可以创造无限个集合,只要它们继续收到请求,就会继续提供元素。函数的惰性使用让您能够得到更高效的代码。Java并没有为惰性提供原生支持, Scala提供了,使用很方便。 二、java实现懒加载 懒汉式 public class LazyDemo {pri...

是否可以调用在Java方法中作为参数传递的scala方法?【代码】

我正在通过Java项目使用Play框架,并且希望将模板(Scala函数)作为参数传递给我的Java方法之一. 我想做这样的事情:public static Result ok(ScalaFunction template, Object obj) {// do some work, then :return ok(template.render(obj)); }MyClass.ok(views.html.mytemplate, SomeModel.find.findList());当然,这是行不通的.我以为views.html.mytemplate是一个类,所以在我的方法中切换到views.html.mytemplate.class和公共静态结...

scala 编程思想 --类方法

覆盖方法 到目前为止,我们继承的类都没有真正执行任何能够使彼此有所区分的操作package com.test1object Scala09_test13 {def main(args: Array[String]): Unit = {//地道的scala//定义操作符//方法名可以包含几乎所有字符。例如,在创建数学包时,你可以按照数学家的方式class Molecule{//var name = _ (前提必须是变量var 不能是val)var attached:Molecule = _def plus(other:Molecule)=attached=otherdef +(other:Molecule)=at...