首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scala基础入门(九)Scala 方法中缀表示法、后缀表示法

Scala 编程规范中,有一些很有意思规则。合理地使用这些规则,可以帮助我们编写更简洁更有效代码。 Scala 方法调用 一般来说,Scala方法调用遵循Java惯例。...调用targetfoo方法示例如下: foo(42, bar) target.foo(42, bar) target.foo() Scala 2.8 版本中,开始支持命名参数。...方法调用中命名参数应该作为常规参数处理(相应间距,以逗号为间隔),等号两边各有一个空格。...; } } 输出结果为: 无参方法被调用! 无参方法被调用! 中缀表示法 Infix notation Scala 有一种特殊方法调用只有一个参数方法。...// 推荐使用 a + b // 有效,但是可读性不好 a+b // 有效, 但是给人感觉很奇怪 a.

40020
您找到你想要的搜索结果了吗?
是的
没有找到

scala(六) 高阶函数

哈哈确实是,但是这种思想,我们应该要明白,否则看到别人函数以这样形式都不知道啥意思就奇怪了。 ---- 对高阶函数有了一定了解后,就来玩玩scala高阶函数;看看他你能玩出什么花来。...sacla 中有很多地方都会用到下划线_;其用途很强大,就说说这里_作用。在这里,它可以作为一个参数,拿_/_为例,第一个_就代表参数x值,第二个_就代表参数y值。...// 调用 val result=calculator(12,4,(x,y)=>x+y) // 输出结果 println(result) 如果函数参数函数体中,只使用过一次,...val result=calculator(12,4,(x,y)=>y-x) 如果函数体中有(),函数参数函数中小括号中以表达式形式存在,此时不能用小括号代替。...) (下划线方式:,Demo02$$$Lambda$7/932607259@67b64c45) 思考:为什么输出是 Demo02$$$Lambda$7/932607259@67b64c45?

59610

大数据技术之_16_Scala学习_07_数据结构(上)-集合

ArrayBuffer(1, 2, 3, 123) 10.5.3 多维数组定义和使用 说明 // 定义 val arr = Array.ofDim[Double](3, 4) // 说明:二维数组中有三个一维数组...,每个一维数组中有四个元素 // 赋值 arr(1)(1) = 11.11 示例代码如下: package com.atguigu.chapter10.array object MultiplyArray...()     println(arrList) // 输出 [1, 2, 3]   } } 输出结果如下: [1, 2, 3] 10.6.2 Java List 转 Scala 数组(mutable.Buffer... scala 中,List 就是不可变,如需要使用可变 List,则需要使用 ListBuffer     // 3. ... 类型支持 Any     // 3. Map 底层,每对 key-value 是元组 Tuple2     // 4.从输出结果看到,输出顺序和声明顺序一致     val map1 = Map

1.2K10

大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础

4、函数式编程中,最重要就是函数。 5.3 为什么需要函数 ? 学习一个技术或者知识点流程: ? 5.4 函数定义 5.4.1 函数定义 ?... catch 中有多个 case, 每个 case 可以匹配一种异常       // 3. => 关键符号,表示后面是对该异常处理代码块       // 4. finally 最终要执行代码...}     System.out.println("继续执行")   } } 输出结果如下: 捕获了除数为零算数异常 scala finally 继续执行 5.10.5 Scala 异常处理小结   ... new ArithmeticException("算术异常")   } } 输出结果如下: 捕获到异常是:算术异常 继续执行001 继续执行002   4、 Scala 里,借用了模式匹配思想来做异常匹配...Java 与 Scala 函数层面上不同体现: // Java 中 函数(接收参数) // Scala 中 集合.函数(函数) 如下图所示: ?

2K10

大数据技术之_16_Scala学习_02_变量

(要记住)2.15.3 标识符举例说明2.15.4 标识符命名注意事项2.15.5 Scala 关键字2.16 作业01 ---- 第二章 变量   为什么需要变量:一个程序就是一个世界, scala... Int = 3 // 定义一个整型变量,取名 b,并赋初值3       b = 89 // 给变量 b 赋 89       println("a=" + a) // 输出语句,把变量 a 输出...      println("b=" + b) // 把变量 b 输出   } } 2.2 Scala 变量介绍 2.2.1 概念 变量相当于内存中一个数据存储空间表示,你可以把变量看做是一个房间门牌号...对上图小结和整理 1、 scala中有一个根类型,它是所有类父类。 2、scala 中一切皆为对象,分为两大类 AnyVal(值类型)和 AnyRef(引用类型),它们都是 Any 子类。...var _ = "jack"     // println(_) // 错误,因为scala中,下划线有很多其他作用,因此不能使用。

1.2K40

spark开发基础之Scala详解apply方法

参数N) 通常这样一个方法返回是伴生对象。 举例来说:Array对象定义了apply,我们可以用下面形式来数组 Array("about”,"yun","com") 为什么不使用构造器?...val acct=Account (1000.0) 我们来看一个例子 package aboutyun.com class ApplyTest{ def apply()=println("I...(补充:Scala中同名和类和对象分别称之为伴生类和伴生对象) 为了加深理解,我们换另外一个说法 半生对象中有一个apply方法 构造类时候一般不用new A() 上面不知你是否理解,这样我们反过来...显然这样是不行。但是Scala中,很多类默认都是由伴生对象,所以我们可以简化类实例。这样apply方法你是否理解了。...f(3),就是 f.apply(3) ######################## apply方法具有查找属性 集合类 Scala集合一文中提到过Iterator迭代器几个子trait包括

2.1K60

分布式机器学习:如何快速从Python栈过渡到Scala

等等,因为工作需要使用spark,所以理所应当开始学习pyspark; 之后一方面团队其他成员基本都是用scala,同时Spark API更新上,pyspark也要慢于scala,而且对于集群维护同事来说...,true,"nemo")) print(arr+"\t") println() // for循环高级技巧:单个for中有多个变量,每个生成器都带过滤条件 // 效果就是嵌套for循环 for (i...同样ListBuffer是List可变版本; 字典 字典Scala中叫做映射; val map1 = Map("k1"->10, 2->1.5, 3.3->"abc") println(map1)...; 外部数据 这里有一个很大问题,如果你数据中列名有中文,那么建议全部重命名为英文,否在在构建SQL表达式等地方会报错,奇怪是这部分在Python中倒是正常,这个坑也填了好久。。。。...列表推导式可以由Scalafor (....) yield ....来替换,注意to和until区别; 表达式部分千万千万不要用中文,都是泪啊,我是因为之前数据集中有一部分列是外部数据,用中文,天坑

1.2K20

机器学习:如何快速从Python栈过渡到Scala

等等,因为工作需要使用spark,所以理所应当开始学习pyspark; 之后一方面团队其他成员基本都是用scala,同时Spark API更新上,pyspark也要慢于scala,而且对于集群维护同事来说...fib(f-1) println(fib(1),fib(2),fib(3),fib(4),fib(5)) // scala中,函数也是一种变量类型,因此也同样可以赋值为某个常量或者当作另一个函数参数...同样ListBuffer是List可变版本; 字典 字典Scala中叫做映射; val map1 = Map("k1"->10, 2->1.5, 3.3->"abc") println(map1)...; 外部数据 这里有一个很大问题,如果你数据中列名有中文,那么建议全部重命名为英文,否在在构建SQL表达式等地方会报错,奇怪是这部分在Python中倒是正常,这个坑也填了好久。。。。...列表推导式可以由Scalafor (....) yield ....来替换,注意to和until区别; 表达式部分千万千万不要用中文,都是泪啊,我是因为之前数据集中有一部分列是外部数据,用中文,天坑

1.7K31

Scala编程基础01

二.为什么要学Scala 1.优雅:这是框架设计师第一个要考虑问题,框架用户是应用开发程序员,API是否优雅直接影响用户体验。...()     val m = if (x > 2) 1     println(m)     //scala中每个表达式都有值,scala中有个Unit类,写做(),相当于Java中void    ...>= 1) 1 else -1     println(k) 4.块表达式 val x = 0     //scala中{}中课包含一系列表达式,块中最后一个表达式值就是块值     //下面就是一个块表达式...    println(result) 5.循环 scala中有for循环和while循环,用for循环比较多 for循环语法结构:for (i <- 表达式/数组/集合)   //for(i <-...(i <- 数组)     val arr = Array("a", "b", "c")     for (i <- arr)       println(i)     //高级for循环     //

11410

Scala基础语法

Scala中鼓励使用val     var s = "hello" //Scala编译器会自动推断变量类型,必要时候可以指定类型 //变量名在前,类型在后     val str: String...//如果缺失else,相当于if (x > 2) 1 else ()     val m = if (x > 2) 1     println(m) //scala中每个表达式都有值,scala中有个... {     val x = 0 //scala中{}中课包含一系列表达式,块中最后一个表达式值就是块值 //下面就是一个块表达式     val result = { if (x < 0)...    println(result)   } } Scala循环表达式 scala中有for循环和while循环,用for循环比较多。...    val v = for (i <- 1 to 10) yield i * 10     println(v)   } } Scala调用方法和函数 Scala+ - * / %等操作符作用与

61030

Scala语言快速了解一下?

them evaluated.Type :help for more information.scala> 1 + 1res0: Int = 2Scala将代码定义到某个包中有两种方式,第一种方法和..._,这里也能解释,为什么scala开头包,使用时都是省去scala.。如果想要引入包中几个成员,可以使用selector(选取器):import java.awt.... Scala 中声明变量和常量不一定要指明数据类型,没有指明数据类型情况下,其数据类型是通过变量或常量初始值推断出来。...( "Value of a: " + a ); println( "Value of b: " + b );}执行以上代码输出结果为:$ scalac Test.scala$ scala TestValue...执行以上代码,输出结果如下:$ scalac Test.scala $ scala Test delayed 方法内获取时间,单位为纳秒参数: 241550840475831获取时间,单位为纳秒实例中

2.9K102

scala(四) For循环控制

范围数据循环 范围遍 to 语法: for(i <- 0 to 10){语句块} to :表示包含结尾,会将10也输出来 def main(args: Array[String]): Unit...我们常用做法就是循环外部定义一边数组或集合,把符合条件结果写入到集合中,最后返回集合。对于这种场景,无论是python还是scala都有yeild实现。...i=8 i=9 循环中断 java 中有break 和continue 关键字,实现循环中断 break:终止整个循环 continue:结束当次循环 scala 中并没有 break 和continue...scala中使用 breakable 控制结构来实现 break 和 continue 功能。 scala 中 已经用 循环守卫 更好代替了 continue 关键字。... scala 语言中,breakable 底层实现就是采用 异常方式,代替了 break 。 def break(): Nothing = throw breakException

77020

Spark常用算子以及Scala函数总结

Spark与Scala 首先,介绍一下scala语言: Scala 是一种把面向对象和函数式编程理念加入到静态类型语言中混血儿。 为什么scala?...spark提供了R、Python等语言接口,为什么还要重新学一门新语言呢?...一般新版本都是最先支持scala,虽然现在python接口也不断丰富 4、到了工作岗位,你师父(都是有几年相关经验),前期由于python支持还没有像scala那样完善,因此会从scala...新手学习Spark编程,熟悉了Scala语言基础上,首先需要对以下常用Spark算子或者Scala函数比较熟悉,才能开始动手写能解决实际业务代码。...[优化代码最基本思路] (1)当采用reduceByKeyt时,Spark可以每个分区移动数据之前将待输出数据与一个共用key结合。借助下图可以理解reduceByKey里究竟发生了什么。

4.8K20
领券