SCALA - 技术教程文章
scala占位符_的用法
占位符的用途颇多,先介绍几种常用的用法1、作为“通配符”,类似Java中的*。如import scala.math._2、:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。3、指代一个集合中的每个元素。例如我们要在一个Array a中筛出偶数,并乘以2,可以用以下办法:a.filter(_%2==0).map(2*_)。又如要对缓冲数组ArrayBuffer b排序,可以这样:val bSorted = b.sorted(_4、...
scala基础&函数【代码】
基础的scala语法和函数package com.yjm.scalaobject Person {def main(args: Array[String]): Unit = {}var age = 20if (age > 20) {println("可以观看欧美")} elseif (age > 18) {println("可以看国产")} else {println("禁止观看")}var count = 1while (count < 102) {println("第" + count + "次迟到")count += 1}do {count -= 1println("第" + count + "次迟到")} while (count > 1)println(1 to 10)println(1.to(10, 2)) //步...
scala学习手记7 - 运算符重载【代码】【图】
从语法上来说scala是没有运算符的。之前的一节里也曾提到过scala的运算符实际上是方法名,如1 + 2实际上就是1.+(2)。我们可以将之视为运算符,是因为scala的一个特性:如果方法的参数小于等于1个的话,那么“.”和括号就都是可选的。scala的运算符重载指的就是重载+、-这样的符号——和C、java或者python等语言不一样,我们需要自己定义这些符号如何实现。下面看一个“+”运算符实现的例子。这里定义了一个Complex类,Complex指的是...
Scala 深入浅出实战经典 第98讲:使用SBT开发时动手解决rt.jar中CharSequence is broken等问题【图】
SBT的Console是交互的,能打包编译工程。650) this.width=650;" src="/upload/getfiles/default/2022/11/12/20221112020547163.jpg" title="SBT编译.png" />DT大数据梦工厂微信公众账号:DT_Spark。DT大数据梦工厂的微信公众号是DT_Spark,每天都会有大数据实战视频发布,请您持续学习。王家林DT大数据梦工厂scala的所有视频、PPT和代码在百度云盘的链接:http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=...
Scala学习笔记(3)-表达式归纳
语法:使用表达式定义值和变量 val <identifier>[:<type>]=<expression> 字面值类型 var <identifier>[:<type>]=<expression> 变量类型实例1:同一级定义类型scala> val x=5*20;val amount=x+10x: Int = 100amount: Int = 110块局部定义(建议采用)scala> val amount={val x=5*20;x+10}amount: Int = 110写法2:scala> val amount={ | val x=5*20 | x+10 | }amount: Int = 110 表达式嵌套:scala> {val a...
Scala基础:面向对象——类【图】
类 (class)类是对象的模板,通过构造类,能够使用new关键字声明一系列同结构的对象。Scala的一个源文件可以包含多个public类。声明Person类:class Person{ var name : String = _ val age = 10 private[this] val gender = “male”}说明:name字段被赋值为“_”“_”即占位符。表示name被声明为String。但赋值为“_”,即暂不赋实际的值。若使用占位符,Scala无法判断name的类型,所以必须声明该字段的类型。gender 在Person中...
Scala的下载安装
Scala官网地址:http://www.scala-lang.org/download/三选一 Download Scala 2.11.4 binaries for your system 直接安装ScalaGet started with Typesafe Activator Typesafe Activator is a browser-based or command-line tool that helps developers get started with Scala。 不知道什么东东,但说的好像是支持Play Framework, Akka and Scala的运行http://www.typesafe.com/platform/getstarted?_ga=1.160890811.747405756.141...
Scala 占位符在REPL和Eclipse/IDEA中初始化变量问题【图】
占位符在REPL和Eclipse/IDEA中初始化变量问题: 占位符初始化,如果是局部变量,都会报错!只能在全局变量中使用!REPL: Eclipse:IDEA: 如果是类的属性,却就是对的。 原文:http://www.cnblogs.com/AK47Sonic/p/7819009.html
从大数据菜鸟走上大师的历程 Scala 第七讲 类属性 私有对象【图】
如果在类内部定义某个变量或对象为private 那么只有该类对象可以引用或调用该类的方法或属性,外部不能调用,但类内部方法中可以调用 ,如果有private[this]修饰的方法或属性只有类内部本身对象可以调用 现在正是学习大数据的最好机遇,不花一分钱就可以成为大数据高手,实现年薪50万的梦想。王家林的第一个中国梦:免费为全社会培养100万名优秀的大数据从业人员!如果您有兴趣请点击这个链接进入大数据的学习http://blog.sina.com....
scala 14 trait
DT大数据梦工厂scala的所有视频、PPT和代码在百度云盘的链接:http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group《Scala深入浅出实战初级入门经典视频课程》http://edu.51cto.com/lesson/id-66538.html《Scala深入浅出实战中级进阶经典视频课程》http://edu.51cto.com/lesson/id-67139.htmlclass UseTrait {}trait Logger{// def log (msg : String) def log (msg : String){}}class ConcreteL...
Scala入门到精通——第十七节 类型参数(一)【代码】【图】
本节主要内容类型变量界定(Type Variable Bound)视图界定(View Bound)上界(Upper Bound)与下界(Lower Bound)1. 类型变量界定(Type Variable Bound)类型变量界定是指在泛型的基础上,对泛型的范围进行进一步的界定,从而缩下泛型的具体范围,例如: //下面的类编译通不过//因为泛型T在编译的时候不能确定其具体类型//即并不是所有的类中都存在compareTo方法classTypeVariableBound {def compare[T](first:T,second:T)={if (fir...
scala编程第17章学习笔记(4)——元组【代码】
元组可以把固定数量的条目组合在一起以便于作为整体传送。不像数组或列表,元组可以保存不同类型的对象。元组常用来返回方法的多个值。例如,下面的方法找到集合中的最长单词并返回它的索引:scala> def longestWord(words: Array[String]) = {| var word = words(0)| var idx = 0| for (i <- 1 until words.length)| if (words(i).length > word.length) {| word = words(i)| idx = i| }| (word, idx)| } longestWord: (words: Ar...
Scala中List、Map、Set各类型操作汇总【代码】
1、Scala中List、Map、Set等各类型函数操作汇总package com.scala.studyimport scala.collection.immutable.{Queue, TreeMap}import scala.collection.mutable/** * Created by HP-PC on 2016/5/26. */object ScalaCaseDemo { def main(args: Array[String]): Unit = { println(1 :: 2 :: List(3, 4)) //单个元素联合List:List(1, 2, 3, 4) //两个List进行联合成一个List:List(1, 2, 3, 4) println(List(1, 2) ::: L...
C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter的区别
ExecuteNonQuery()执行命令对象的SQL语句,返回一个int 类型的变量,返回数据库操作之后影响的行数。适合用来验证对数据库进行增删改的情况。 2、ExecuteScalar()也可以执行sql语句。如果SQL语句是Select查询,则仅仅返回查询结果集中第一行第一列,而忽略其他行和列。如果SQL语句不是Select查询,则这个返回结果没任何作用。(建议查询数据库时使用) 由于不知道sql语句到底是什么样的结构(有可能是int,有可能是Char等其...
karottc A Simple linux-virus Analysis、Linux Kernel <= 2.6.37 - Local Privilege Escalation、CVE-2010-4258、CVE-2010-3849、CVE-2010-3850【代码】【图】
catalog1. 程序功能概述 2. 感染文件 3. 前置知识 4. 获取ROOT权限: Linux Kernel <= 2.6.37 - Local Privilege Escalation 1. 程序功能概述1. 得到root权限 2. 感染文件 3. 进行破坏Relevant Link:https://github.com/karottc/linux-virus 2. 感染文件该病毒采取感染.C源代码文件的方式进行传播感染,即在每个被感染的源代码的主函数中插入恶意函数的调用,以及在文件的其他位置插入恶意逻辑函数体,并在文件头进行"感染标记",防...
scala操作符&运行
---恢复内容开始---#操作符运算数学操作符 + - * / %比较操作符 < > >= =<逻辑操作符 && ||对等操作符 == !=位操作符 & | ^ ~#标识符与命名字母开头,字母数字下划线"`"括起来的任意字符串 #语句结束分号 和 换行符 例外:换行不作为语句结束的情景: 匹配的(与), xml模式下 case 符号及匹配的=>符号之间 if while for type 是允许跨两行的合法语句#编写#编译 cmd下用scalac,fsc#运行 ---恢复内容...
Scala基本语法及操作、程序控制结构【图】
一、Scala概述Scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性。 scala运行在虚拟机上,并兼容现有的Java程序。 Scala源代码被编译成java字节码,所以运行在JVM上,并可以调用现有的Java类库。二、基本语法1.区分大小写2.类名首字母大写(MyFirstScalaClass)3.方法名称第一个字母小写(myMethodName())三、数据类型:与JAVA相同1.多行字符串表示方法: 2.Scala的变量使用val定义的变量值是不可变的,相当于ja...
Scala之偏函数Partial Function【代码】
本文原文出处: http://blog.csdn.net/bluishglc/article/details/50995939 严禁任何形式的转载,否则将委托CSDN官方维护权益!从使用case语句构造匿名函数谈起在Scala里,我们可以使用case语句来创建一个匿名函数(函数字面量),这有别于一般的匿名函数创建方法。来看个例子:scala> List(1,2,3) map {case i:Int=>i+1} res1: List[Int] = List(2, 3, 4)这很有趣,case i:Int=>i+1构建的匿名函数等同于(i:Int)=>i+1,也就是下面这...
19.scala的类型上下界【图】
类型上界在Scala中,类型参数和抽象类型都可以有一个类型边界约束。这种类型边界在限制类型变量实际取值的同时还能展露类型成员的更多信息。比如像T <: A这样声明的类型上界表示类型变量T应该是类型A的子类。下面的例子展示了类PetContainer的一个类型参数的类型上界。?abstract class Animal { def name: String}abstract class Pet extends Animal {}class Cat extends Pet { override def name: String = "Cat"}class Dog exten...
Scala学习笔记一之基础语法,条件控制,循环控制,函数,数组,集合【代码】
前言:Scala的安装教程:http://www.cnblogs.com/biehongli/p/8065679.html1:Scala之基础语法学习笔记:1:声明val变量:可以使用val来声明变量,用来存放表达式的计算结果,但是常量声明后是无法改变它的值的,建议使用val来声明常量;声明var变量:如果要声明可以改变的引用,可以使用var变量,声明的常量的值可以改变。 3:指定类型:无论声明val变量还是声明var变量。都可以手动指定其类型,如果不指定,scala会自动根据值,进行类...
【scala】 scala 类 (五)【代码】
1、scala类 1.class 关键字 2.var 属性 默认生成getter/setter 方法 3.val 属性 默认生成getter 方法 4. 自定义getter /setter 方法 , property 和 proeprty_ 方法来表示 getter 和setter方法 5. 主构造函数 和辅构造函数的定义使用 6.使用 @BeanProperty 来生成 getter/setter方法 7. 重写toString 方法 ,利用scala字符串插值来格式化输出 import scala.beans.BeanProperty/*** @author xwolf* @date 2017-04-12 16:52*...
2.scala控制结构、函数、异常处理
a:focus { outline: 5px auto -webkit-focus-ring-color } a:hover,a:active { outline: 0 } a { color: #0088cc; text-decoration: none } a:hover { color: #005580; text-decoration: underline } p { margin: 0 0 1.1em } small { font-size: 85% } strong { font-weight: bold } em { font-style: italic } cite { font-style: normal } h1.story_title { margin: 0.7em 0 } .story_tags { margin: 0 0 1.2em } h1,h2,h3,h4,h...
Scala进阶之路-尾递归优化
Scala进阶之路-尾递归优化 作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。原文:https://www.cnblogs.com/yinzhengjie/p/9370898.html
Android linux kernel privilege escalation vulnerability and exploit (CVE-2014-4322)
In this blog post we‘ll go over a Linux kernel privilege escalation vulnerability I discovered which enables arbitrary code execution within the kernel.The vulnerability affected all devices based on Qualcomm chipsets (that is, based on the "msm" kernel) since February 2012. I‘d like to point out that I‘ve responsibly disclosed this issue to Qualcomm, and they‘ve been great as usual, and fixe...
spark操作hive方式(scala)【代码】
第一种方式:def operatorHive: Unit = {Class.forName("org.apache.hive.jdbc.HiveDriver")val url = "jdbc:hive2://192.168.2.xxx:10000"val connection: Connection = DriverManager.getConnection(url, "root", "diagbotkwz@123")val createStatement: Statement = connection.createStatement()val query: ResultSet = createStatement.executeQuery("select * from diagbot.ord_lis_trend limit 2")while (query.next()) {pri...
Scala学习(八)---Scala继承【图】
Scala继承摘要:在本篇中,你将了解到Scala的继承与Java和C++最显著的不同。要点包括:1. extends、final关键字和Java中相同2. 重写方法时必须用override3. 只有主构造器可以调用超类的主构造器4. 你可以重写字段在本篇中,我们只探讨类继承自另一个类的情况。继承特质的内容后面会详细介绍扩展类扩展关键字Scala扩展类的方式和Java一样,使用extends关键字:class Employee extends Person {var salary=0.0………}和Java一样,你在...
大数据系列修炼-Scala课程05【代码】
Scala多重继承、构造器的执行顺序、AOP实现多重继承的trait实现:Scala中接口可以继承具体的类,trait接口可以实现多重继承,并且某个类也可以继承特定的类,在继承后面可以混入,接口的实现多重继承构造器执行顺序:多重继承构造器执行顺序是从左到右按次序执行,如果前面类以及被继承实现了,后面的类就没有必要去实现,父类只需执行一次object triatScala {def main(args: Array[String]): Unit = {val t1 = new PianoTeacher t...
Scala基础语法介绍【代码】【图】
1.变量的定义 注意:在scala中没有static的概念,在object这个关键字修饰的类中所有的方法和属性都是static的。这里的object类叫做伴生类,目前不涉及。例:object Test01{def main(args: Array[String]): Unit = {//使用val定义的变量是不可变的,相当于java中的final修饰的val v1=1//使用var定义的变量的值是可变的,在scala中鼓励使用的是valvar v2=2//在定义变量的时候,也可以在变量名前提供类型,如何不提供默认的是类型推断...
scala-eclipse【图】
windows下scala的eclipse开发环境步骤:1,下载并安装scala,最新版Download Previous Versions | The Scala Programming Languagehttp://www.scala-lang.org/download/all.html2,eclipse开发环境搭建先说结论:最简单的方法,下载Scala IDE for Eclipse官网提供的集成scala的eclipse。下载页面:Download Scala IDE for Eclipse - Scala IDE for Eclipsehttp://scala-ide.org/download/sdk.html# 建立scala项目 再说走过的晚路:安...
Spark RDD API(scala)【代码】【图】
1、RDDRDD(Resilient Distributed Dataset弹性分布式数据集)是Spark中抽象的数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据时分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作,从而得到结果。2、RDD创建RDD可以从普通...