
Scala
文章平均质量分 52
金字塔顶的蜗牛*3
这个作者很懒,什么都没留下…
展开
-
scala学习第三弹:scala实战
需要安装的软件jdk scala sbt repl sbt(simple build tools)为scala而设计 scala的交互式界面叫做repl界面 进入交互界面:命令行输入scala 退出交互界面:quit原创 2016-04-29 21:27:11 · 503 阅读 · 0 评论 -
scala学习第一弹:基本语法和语法特性
scala很多人都没有听说过,但是spark肯定如雷贯耳了,而spark就是用scala编写的,所以为了更好地了解scala,我们需要学习scala,接下来我将用博客记录我学习scala的全部过程! 推荐书籍《scala for th impatient》入门 《scala in depth》深入 一、语法特性 scala是一种面向对象的函数式编程语言,其函数式编程特性对使用者有着巨大的吸原创 2016-04-29 15:21:33 · 385 阅读 · 0 评论 -
scala学习第二弹:函数式编写思想
scalable的语言,可大可小。 纯正的面向对象语言。 scala和java可以互相调用。 一、函数式编程的定义 二、重要概念 1.纯函数(Pure Function)没有副作用(Side Effect)。 副作用指状态的变化 例子:副作用 var x = 1 def XplusY_V1(y:Int) = x+y def XplusY_V2(y:Int)={x+=y;原创 2016-04-29 21:12:30 · 399 阅读 · 0 评论 -
scala学习第四弹:基本语法
变量 三种变量修饰符 val immutable variable var mutable variable lazy val 可以不显示指定变量的类型,因为Scala会自动进行类型的推导 repl中 Scala为没有给命名的变量起名resX 一般情况下,如果我们定义的某个变量在后续的计算可能不会被用到,可以使用lazy定义,这样当后面计算用到时再进行计算。 数据原创 2016-04-29 22:26:37 · 334 阅读 · 0 评论 -
Scala学习第五弹:求值策略
Scala对函数的实参参数采用两种不同求值策略。 def fun(x:Int, y => Int)=1 红色部分是Call By Value的定义,蓝色部分是Call By Name的定义。 Call By Value 先计算实参的表达式,实参计算且只计算一次。 Call By Name 实参用到时才计算表达一次,且出现多少次计算多少次 图片来自慕课网Scal原创 2016-05-01 21:26:52 · 567 阅读 · 0 评论 -
Scala学习第八弹:递归与尾递归
递归函数在函数式编程中是实现循环的一种技术。 举例: 计算n! def factorial(n:Int):Int= if (n else n*factorial(n-1) 但是递归会造成堆栈的大量占用,可以使用尾递归进行优化。 尾递归函数中所有递归形式的调用都出现在函数的末尾。当编译器检测一个函数调用时尾递归时,它就覆盖当前的活动记录而不是在栈中去创建一个新的原创 2016-05-02 15:15:27 · 1891 阅读 · 0 评论 -
Scala中repl 中的技巧
repl中文名为交互式解释器。 :paste 进行大块代码编写模型 Ctrl d退出原创 2016-05-02 17:15:10 · 2805 阅读 · 1 评论 -
Scala学习第六弹:函数与匿名函数
一、函数是第一等公民 Scala中,函数上升和变量同等的位置,或者说函数也是一种变量。 Scala中的函数可以作为实参传递给另一个函数; 函数可以作为返回值; 函数可以赋值给变量; 函数可以存储在数据结构之中。 函数如同普通变量一样,也具有类型。 二、函数类型 形式:A=>B A为输入类型,B为输出类型 如Int => String,把整形数变成String类型。原创 2016-05-01 22:03:05 · 3606 阅读 · 0 评论 -
sbt学习
sbt simple build tool sbt是一个现代构建工具。 安装方法: ubuntu and debian-based distributions echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list sudo apt-key adv原创 2016-06-02 22:24:04 · 706 阅读 · 0 评论