
Scala
weixin_43866709
The best or nothing
展开
-
Scala时间格式转换
本博客转自:https://blog.youkuaiyun.com/Neleuska/article/details/78864845 scala中关于时间格式的转换问题,总结为以下三种常用情况:1、时间字符类型转Date类型import java.text.SimpleDateFormatval time = "2017-12-18 00:01:56"val newtime...转载 2019-03-28 13:19:49 · 723 阅读 · 0 评论 -
二分法查找
在对比一个数字是否在一个范围内时,用二分法可以加快对比的速度下面是实现的代码://二分法查找 def binarySearch(lines: Array[(Long, Long, String)], ip: Long) : Int = { var low = 0 var high = lines.length - 1 while (low <= high) {...原创 2019-03-23 19:36:28 · 128 阅读 · 0 评论 -
将IP地址转化为十进制
今天在根据Ip统计归属地时,要进行IP对比,如果将IP地址转化为十进制的话,会更加方便。下面是一个转化的程序://将IP转化为十进制 def ip2Long(ip: String): Long = { val fragments = ip.split("[.]") var ipNum = 0L for (i <- 0 until fragments.lengt...原创 2019-03-23 19:33:13 · 2119 阅读 · 0 评论 -
Scala学习--Actor入门
Scala中的Actor类似于Java中的多线程编程,不同的是,Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能。此外,Scala的Actor的这种模型还可以避免死锁等一系列传统的多线程编程的问题。Actor的创建,启动和消息收发//Scala提供了Actor trait来更方便地进行actor多线程编程,就Actor trait...原创 2019-03-09 11:06:14 · 146 阅读 · 0 评论 -
Scala学习--详解隐式转换与隐式参数
Scala提供的隐式转换和隐式参数是非常有特色的功能,它允许你手动指定,将某种类型的对象转换成其他类型的对象。Scala的隐式转换,其实最核心的就是定义隐式转换函数,即implicit conversion function.定义的隐式转换函数,只要在编写的程序内引入,就会被Scala自动使用,Scala会根据隐式转换函数的签名,在程序中使用到隐式转换函数接收的参数类型定义的对象时,会自动将其传...原创 2019-03-08 21:17:55 · 221 阅读 · 0 评论 -
Scala学习--类型参数(泛型)
Scala中的类型参数类似于Java中的泛型。在Java中,比如有List a = new ArrayList(),接着a.add(1),a.add(“2”),然后a.get(1) == 2就不对了,因为a.get(1)获取的是一个字符串String–“2”.所以Java提出了泛型的概念,用泛型创建List,List a = new ArrayList[Integer](),这样创建之后,a.a...原创 2019-03-08 15:19:16 · 958 阅读 · 0 评论 -
scala学习--模式匹配
Scala中的模式匹配,类似于Java中的switch case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理。但是Scala的模式匹配不仅能对值进行匹配,还可以对类型进行匹配,对case class(样例类)进行匹配,甚至对有值或没值(option)进行匹配。一.语法:变量 match{case 值 => 代码}。如果值为下划线,则代表不满足以上所有情况下的默认情况如...原创 2019-03-07 16:22:27 · 188 阅读 · 0 评论 -
Scala学习--方法和函数
Scala方法和函数Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。Scala 中的方法跟 Java 的类似,方法是组成类的一部分。Scala 中的函数则是一个完整的对象,Scala 中的函数其实就是继承了 Trait 的类的对象。Scala 中使用 val 语句可以定义函数,def 语...翻译 2019-03-06 18:24:47 · 154 阅读 · 0 评论 -
Scala学习--函数式编程之集合操作
ListList代表一个不可变的列表Liat的创建,val list = List(1,2,3,4)List有head和tail,head代表List的第一个元素,tail代表第一个元素之后的所有元素,list.head,liat.tailList有特殊的::操作符,可以用于将head和tail合并成一个List,0::list如果一个List只有一个元素,那么它的head就是这个元素,...原创 2019-03-06 18:10:00 · 288 阅读 · 0 评论 -
Scala学习--面向对象编程之Trait
Scala Trait(特征)相当于Java的接口,实际上它比接口的功能更加强大。因为trait中可以定义属性和方法的实现,而且可以继承多个父类,相当于实现了多重继承。在Scala中创建对象时可以动态的继承不同的trait,从而实现不同的功能,这点是非常强大的。一.作为接口使用在trait中可以定义抽象方法,类可以使用extends关键字继承trait,在Scala中没有implement的概...原创 2019-03-05 20:16:50 · 230 阅读 · 0 评论 -
Scala学习--面向对象编程之继承
今天学习了Scala面向对象的继承,和Java还是有不同的地方,在此总结一下!一.Scala中,让子类继承父类,与Java中一样,使用extends关键字。继承就代表,子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method,使用继承可以有效的复用代码。父类如果用final关键词修饰,field和method用final修饰,...原创 2019-03-04 14:13:58 · 435 阅读 · 0 评论 -
Scala学习--面向对象编程之对象(object)
一.object是Scala语言独有的一个特性,由于Scala中没有static,所以Scala定义的类中不能存放一些静态的属性,而object解决了这个问题。1.object就相当于class的单个实例,通常里面放一些静态的field或者method。2.第一次调用object方法时,就会执行object的构造函数,(也就是object内部不在方法中的代码),但是object不能定义需要接受...原创 2019-03-02 20:23:46 · 584 阅读 · 0 评论 -
Scala学习--面向对象编程之类的getter和setter方法
Scala中定义类的方法和Java基本相同,但比Java更加的简洁。我们都知道,类中的field一般被定义为私有的,这样可以达到封装的特性,数据被定义为私有的之后,为了访问到数据,我们要定义get和set方法来使用这些数据,接下来说一下Scala中getter和setter方法的使用。先看一个定义类的例子:class HelloWorld{ private var name = "xiao...原创 2019-03-02 14:23:04 · 528 阅读 · 0 评论 -
scala学习--面向对象编程之构造函数
Scala中,构造函数分为辅助构造函数和主构造函数两种。定义构造函数名称为this()一.辅助构造函数可以给类定义多个构造函数,类似于Java中的构造函数重载辅助构造函数之间可以互相调用,而且必须第一行调用主构造函数例如:class Student{ private var name = "" private var age = 0 def this(name:String){...原创 2019-03-02 10:34:37 · 260 阅读 · 0 评论