zoukankan      html  css  js  c++  java
  • chapter3 《Programming in scala》笔记

    1、Array

    变量初始化:

    方括号中为类型,后面跟圆括号为参数

    这里虽然 greetStrings 是val,但是其中的element是可以被另外赋值的,val只是说这个变量只能是Array[String](3)的对象了。所以array本身仍是mutable。

    另外一种初始化的方式

    其实是使用了一个叫 apply的 factory method,apply方法在 Array的伴生对象 companion object中定义。

    这种写法等同于

    2、List

    scala中的List是immutable的

    初始化:

    more:

    这里 最后 ::Nil 是必须的,否则编译器不知道它是list

    一般的,在 a operator b时,可以看做是 a.operator(b),而有 :的时候,以 右边为主,a :: b 应看做 b.:: (a)

    3、Tuple

    tuple和list一样是immutable,但是tuple里面的element类型不必相同。获取里面的元素只要只用 ._1 这种下标就好。而不能使用想array或list的 (0)形式,主要是因为tuple每个元素类型都可能不一样。

    4、Set

    extend不同的trait,分为 immutable 和 mutable

    下面的代码,对jetSet进行了重新赋值, jetSet + "Lear" 其实新产生了一个 set,这个新的set赋给了jetSet

    mutable set: 没有产生新的set。 += 则是 一个method,可以写成  .+= 。immutable set 则不具备这个method。

    5、Map

    同样的,map也分为 immutable 和 mutable。默认不用import的是 immutable

    初始化

    形如  1 -> "Go to island."  其实是 ->方法在1上的使用,即 (1).->("Gotoisland.") 

    6、提倡使用val和immutable变量

    减少vars,mutable和 function side effect

    The reason Scala en- courages a functional style, in fact, is that the functional style can help you write more understandable, less error-prone code. 

  • 相关阅读:
    如何更改 iOS 和安卓浏览器上的 input[type="radio"] 元素的默认样式?
    js获取样式、currentStyle和getComputedStyle的兼容写法
    js选中文字兼容性解决
    最短的IE判断var ie=!-[1,]分析
    总结oninput、onchange与onpropertychange事件的用法和区别
    jQuery工具函数
    Vnpy官网汇总
    Anaconda下各个Python版本下载地址
    APScheduler——定时任务框架
    PyQt5——隐藏控件并保留位置
  • 原文地址:https://www.cnblogs.com/akanecode/p/7401973.html
Copyright © 2011-2022 走看看