scala中符号的意思】的更多相关文章

1. => 定义函数, xxx => yyy 左边是函数变量,右边是函数返回值 2. <- 遍历中的<- 将变量赋给索引 for( i <- arrs ) 3. -> ->方法是所有Scala对象都有的方法,返回一个二元的元组(A,B) scala> 1 -> 2 res9: (Int, Int) = (1,2) 4. 下划线 _ https://blog.csdn.net/i6448038/article/details/50017427 5. _N…
本文旨在介绍Scala在其他语言中不太常见的符号含义,帮助理解Scala Code. 随着我对Scala学习的深入,我会不断增加该篇博文的内容. 修改记录 ----2016.11.23  新增scala中最神秘强大的下划线(_)用处 下面介绍Scala中的符号: :::三个冒号运算符:表示list的连接操作 val one = List(1,2,3) val two = List(4,5,6) val three = one:::two 输出结果为:three: List[Int] = List…
从jvm来看,scala中的@究竟是个什么鬼? 我也是初步尝试来看jvm的类文件,又是初次来分析@,如不对的地方,请各位指正! 先看一下@ 是个什么? object TestScala { def main(args: Array[String]): Unit = { val b = Some() val a@Some() = Some() println(b) println(a) val bb = val aa@"IMF" = "IMF" println(bb)…
参考资料: scala中常用但其他语言不常见的符号含义 Scala学习六:Scala中的特殊字符 =>(匿名函数) 参考文档:scala => 用法 匿名函数 => 匿名函数,在Spark中函数也是一个对象可以赋值给一个变量. Spark的匿名函数定义格式: (形参列表) => {函数体} 所以,=>的作用就是创建一个匿名函数实例. 比如:(x:Int) => x +1 ,就等同于下面的Java方法: public int function(int x) { retur…
http://www.jianshu.com/p/93eefcb61d4f val和def的区别 在scala中,可以用val和def前缀来定义变量,例如: val x = 1 def y = "foo" 这两者的区别在于: val定义值时,会做call-by-value操作, def则会做call-by-name操作. 例如: // 这是一个死循环 def loop: Boolean = loop // 用val定义时会做call-by-value,以下语句会block住 val x…
这一章的一些基础性的东西,主要包括Scala中的基本变量类型,以及相关的一些操作符. 一.简单类型 下表中列出Scala语言中的基本类型,以及其字节长度,其中Byte, Short, Int, Long以及Char都属于整型,整型再加上Float和Doble统称为数字类型. 类型 描述 Byte 8位有符号补码整型(-2^7~2^7 - 1) Short 16位有符号补码整型(-2^15~2^15 - 1) Int 32位有符号补码 整型(-2^31~2^31 - 1) Long 64位有符号补…
Scala进阶之路-Scala中的高级类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类型(Type)与类(Class)的区别 在Java里,一直到jdk1.5之前,我们说一个对象的类型(type),都与它的class是一一映射的,通过获取它们的class对象,比如 String.class, int.class, obj.getClass() 等,就可以判断它们的类型(type)是不是一致的.简单的说Type是用来描述类的,而Class是用来描述类的,因此Tpye范…
Spark是由Scala编写的.Spark作为一款十分易用高效的大数据框架使用越来越广泛,Scala也随之有更多的人去学习. 语言相通,相信有python.java基础的程序员学习Scala并没有太大的难度.但是Scala程序中奇奇怪怪的操作符却让人十分挠头. Scala的教程大多都是从变量定义.函数.类等入门,我们直接从Scala符号入门,直接从代码中体会Scala的特性. 1. 怪符<- 经常在for循环中的使用,被称生成器(generator). 在执行过程中,集合filesHere中(A…
看源码的时候看到: trait ExtensionId[T <: Extension] { 没见过这个符号啊<: Scala上界(<:)和下界(>:) 1) U >: T 这是类型下界的定义,也就是U必须是类型T的父类(或本身,自己也可以认为是自己的父类). 2) S <: T 这是类型上界的定义,也就是S必须是类型T的子类(或本身,自己也可以认为是自己的子类). 然后scala中的泛型符号是[T],而不是Java中的<T>. 对于一个带类型参数的类型,比如…
Scala中的=>符号可以看做是创建函数实例的语法糖.例如:A => T,A,B => T表示一个函数的输入参数类型是“A”,“A,B”,返回值类型是T.请看下面这个实例: scala> val f: Int => String = myInt => "The value of myInt is: " + myInt.toString() f: Int => String = <function1> scala> printl…
先来看一段Java中的循环: for (int i = 1; i < 4; i++) { System.out.print(i + ","); } 毫无疑问,scala可以让这个循环更加简洁.根据上一节中的内容,没有必要显示指定变量i的类型,我们甚至不需要声明这个变量.其次输出的语句也可以更加简洁一些,在scala中可以直接使用println()这个方法输出字符串.最后scala的循环结构也是非常的轻量级.好了,可以看一下代码了: for (i <- 1 to 3) { p…
最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此 Scala中的Lambda表达式 在函数式编程中,函数是基本的构造块.Scala融合了java中的面向对象编程和函数式编程.在Scala中,一个lambda表达式是种叫做“函数”或者“函数文本”.Scala中的函数属于一等公民.它们可以被分配给vals或者vars(最终变量或者非最终变量),它们可以作为其他函数的参数,也可以组合成新的函数. 在Scala中一个函数文本写成如下形式: ? 1 (argu…
date: 2019-08-01 11:15:27 updated: 2019-08-22 15:22:32 Scala 特殊符号含义 参考地址 1. ::: :::(三个冒号)只用于连接两个 List 类型的集合 val a = List(1, 2) val b = List(3, 4) val c = a ::: b 2. :: ::(两个冒号)表示普通元素与 List 的连接操作 val a = 1 val b = List(3, 4) val c = 1 :: b :: 是右侧对象的方法…
一.分支控制if-else //Scala中if-else语句中,代码块内最后一句代码就是返回值 def main(args: Array[String]): Unit = { var age:Int = 18; if (age > 18){ "成年了" }else{ "未成年" } } 注意:Scala中没有三元运算符,由if-else替代了. 二.分支控制Switch Scala中没有switch语句,而是使用模式匹配来代替. 模式匹配:一个模式匹配包含了…
Scala中的 apply 方法有着不同的含义, 对于函数来说该方法意味着调用function本身, 以下说明摘自Programming in Scala, 3rd Edition Every function value is an instance of some class that extends one of several FunctionN traits in package scala, such as Function0 for functions with no parame…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
在scala中这四个类型名称很类似,作用确实完全不同的. None是一个object,是Option的子类型,定义如下 case object None extends Option[Nothing] { def isEmpty = true def get = throw new NoSuchElementException("None.get") } scala推荐在可能返回空的方法使用Option[X]作为返回类型.如果有值就返回Some[x](Some也是Option的子类),…
背景 使用spark执行mapPartitionsWithIndex((index,iterator)=>{....}),在执行体中将iterator进行一次迭代后,再次根据iterator执行迭代,iterator迭代体未执行. 猜想及验证过程 猜测iterator只能执行一次迭代. 测试例子如下: val rdd1 = sc.makeRDD(1 to 10,2) val rdd2 = rdd1.mapPartitionsWithIndex{(index,iterator)=>{ var r…
今天学习了scala中的路径依赖,来看一下实战代码 class Outer{  private val x = 10  class Inner{    private val y = x +10  }} 这里定义了一个外部类Outer,Outer里定义了私有的成员x.同时定义了内部类Inner,内部类里定义了私有成员y. 在这里,内部类Inner可以访问外部类的私有成员x,而外部类不能访问内部类Inner的私有成员y. 继续看这段代码: object test52{  def main(args…
今天学习了下scala中的链式调用风格的实现,在spark编程中,我们经常会看到如下一段代码: sc.textFile("hdfs://......").flatMap(_.split(" ")).map(_,1).reduceByKey(_ + _)........ 这种风格的编程方法叫做链式调用,它的实现方法见下面的代码: class Animal {def breathe : this.type = this}class Cat extends Animal…
我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)…
Scala中没有静态类型,但是有有“伴侣对象”,起到类似的作用. Scala中类对象中不可有静态变量和静态方法,但是提供了“伴侣对象”的功能:在和类的同一个文件中定义同名的Object对象:(须在同一文件中:main方法定义在Object对象中) private[spark] class Client( val args: ClientArguments, val hadoopConf: Configuration, val sparkConf: SparkConf) extends Loggi…
scala中也有和java,c#类似的抽象类,抽象类会有部分实现,也有没有实现的方法定义.抽象类最大的特征是不能直接实例化.下面我们看个例子. abstract class Animal { def walk(speed:Int) def breathe() = { println("animal breathes") } } 我们定义个一个Animal的抽象类,在这个抽象类中walk方法只有方法体的定义,没有实现:而breathe方法是有实现的. 有了抽象类必须有非抽象的子类,才能使…
在调试scala在线开发教程(http://www.imobilebbs.com/wordpress/archives/4911)的过程中看到了以下代码,但是这段代码无论怎么调试都无法成功. abstract class Element{ def contents:Array[String] val height:Int = contents.length val width:Int = if(height==0) 0 else contents(0).length } class Unifor…
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-97讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/ceac2IoB-ik/优酷:http://v.youku.com/v_show/id_…
王家林亲授<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/5LnLNDBKvi8/优酷:http://v.youku.com/v_show/id_…
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/9JKSqMiQuBE/优酷:http://v.youku.com/v_show/id…
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/a6qIB7SqOlc/优酷:http://v.youku.com/v_show/id_…
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/pR_4sY0cJLs/优酷:http://v.youku.com/v_show/id_…
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2土豆:http://www.tudou.com/programs/view/5uuKOP38d6s/优酷:http://v.youku.com/v_show/id_…