zoukankan      html  css  js  c++  java
  • Scala小记(一)

    Scala小记----初识Scala

    一,什么是Scale?

    Scala是一门面向对象的,使用JVM运行的函数式编程语言,(函数式编程语言:指的就是那些将方法或者说是函数来作为参数

    进行传递的编程语言)。Scala默认引入的包有三个(java.long._      ,  scala._     ,  Predef._  ) 注:这三个包下main的内容皆

    可以直接使用。

    1.1函数式编程的特点?

    1.1.1 函数是“一等公民”

    (first class)指的是函数与其他数据类型一样,处于一个相互平等的地位,可以赋值给其他变量,亦可以作为参数来传递给另一个

    函数,或者说是作为别的函数的返回值。

    1.1.2 只用表达式,不用语句

    表达式(expression)是一个单纯的运算过程,总是会有返回值;语句(statement)是执行某种操作,没有返回值。函数式编程的

    要求就是:值使用表达式,不使用语句。每一步都是作为单纯的运算来做的,而且都有返回值。函数式编程的开发动机就是处理

    运算(computation),不考虑系统的读写IO(尽量少)。

    1.1.3 没有“副作用”

    意味着函数要保持一个独立性,所有的功能就是返回一个新的值,没有其他行为,尤其是不能修改其他的变量的值。

    1.1.4 不修改状态

    在其他语言中,变量往往保存状态,函数式的编程全局变量不能保存状态,状态一般保存再参数中。

    1.1.5 引用透明

    指的是函数的运行不依赖外部的变量,只依赖输入参数,任何的时候只要参数相同,引用函数所得到的返回值就总是相同的。

    1.2 什么是闭包?

    闭包是一个函数,返回值依赖于声明在函数外部的一个或着多个变量。

    闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数(可以引用外部的变量)

    1.3 Scala代码块?变量?常量?

    1.3.1 Scala的代码块?

    • 包含在{}中间的代码称之为代码块
    • 代码块的最后一行就是这个代码块的返回值(并且无需加return关键字)

    1.3.2 Scala的变量和常量?

    • Scala的变量和常量的定义需要有一个初始值,如果我们不知道初始值是什么的话,我们可以使用下划线(占位符)来替代
    • 只有抽象类可以定位无初始值的变量和常量
  • 相关阅读:
    Linux反编译
    函数调用 堆栈
    机器学习经典书籍
    linux kernel系列四:嵌入式系统中的文件系统以及MTD
    Linux Kernel系列三:Kernel编译和链接中的linker script语法详解
    单页面响应式模板:血色圆月
    Disqus评论框改造工程-Jekyll等静态博客实现Disqus代理访问
    25个Web前端开发工程师必看的国外大牛和酷站
    我们是谁? 程序员!
    GitHub万星项目:黑客成长技术清单
  • 原文地址:https://www.cnblogs.com/LangZiXiYan/p/9759413.html
Copyright © 2011-2022 走看看