新普金娱乐网址


本身唯一庆幸的,是本人还尚无毕业。

想要有高超的创制力?学会这4点也许就够了

Scala学习笔记(三)

  • 一月 10, 2019
  • 数学
  • 没有评论

一、演说与口才

用作一个从乡村出来的子女,一直以来都是遵守正规的率领路线走,也没到位过什么样绝招培训班,诸如:钢琴、绘画……从时辰候拿到周围灌输的想想就是好好学习,争取考上一所名牌大学。就如此一道走下去,没考上自己向往的母校,拔取了湖北省内土木工程专业最好的马那瓜理工大学。

到了高等学校才意识到和旁人的异样确实很大,尤其是在发言与口才那下面,从刚开学的各样自我介绍再到此外竞选面试等等,我逐渐初叶发现自己欠好意思的性情和当面讲话的烦乱与害怕,也起头意识到公然说话的机要。从这未来,我便在心底立下一个增长演说与口才的flag,并选修了一门《讲演与口才》的选修课。

只是flag终究是flag,唯有想法没有行进是少数卵用也尚无的。上了一学期那多少个课,每当遇上上台机会的时候仍旧畏畏缩缩,日常也不刻意磨练,没有磨练并未成长。直到到了大四下学期,已经考完研了,当时和阿欢去头马俱乐部又再一次发现到了这一点,意识到祥和的短板,佩服旁人是何其多么的决意。

现今的自家一度研二了,刚来加纳阿克拉的时候就找阿欢打听了浦那头马俱乐部,研一一年只去了三两遍,一个人坚持不渝去做一件事真的是不够坚持不渝的恒心。方今连着去了五六次头马俱乐部了,因为阿广也想去,有了个伴坚贞不屈下去分明容易了成百上千。可是,问题又来了,参与了参预了呢?参预了演习了呢?不操练啥地方来的提升?希望这两次,不只是有想法,要付诸行动,不做行动的小个子。Practice
makes perfect!

3. Array 、 ArrayBuffer 以及多维数组

Scala 的数组包括定长数组 Array,以及不定长数组 ArrayBuffer。

三、马耳他语与读书

先说说俄语吗,这么些读书了如此多年的事物。从小学四年级先导学保加布兰太尔语,现在早就十多年了,不过自己现在的品位low的真是令人同情直视。想想初中,当时的希腊语平素是自己的自大的资产,中考的考了116/120。高中在高手云集的一中,波兰语不算好不过也还过得去,每每考试战绩也说的千古,高考考了135/150。每一遍大考,数学滑铁卢的时候,波兰语差强人意。到了高等学校将来,大一还怀着一颗学好保加不莱梅语的心,大一上学期还每每去早读,可是好景不长,在自我这从没战友的坚定不移一段时间就会崩溃。大二考四级报了全校的引导班,战表考了549分,还算说的病逝啊。但是到了考六级,第三回才以427的分数两分飘过,何其痛哉!什么样的经过铸就怎样的结果!有着一颗学好阿尔巴尼亚语的心,没有坚持不渝身体力行,只可以当做思想上的大个子,在行路上成为一名“矮子”。现在历次去头马俱乐部,一般都能抓住机会上去做一个TT,然则这三回下来,每回自己都是很low,low,low…本次还预备六级刷一下分,自己复习什么自己思想有点b数!脑袋想来终觉浅,绝知此事要躬行!

陶渊明好读书,不求甚解,每有理会,便喜欢忘食。从小到大,自己读的书大多都是教科书。意识到这或多或少自此,想不断追加自己的阅读量。大学内部的体育场馆貌似去的次数屈指可数,中期去了不是上自习就是查资料。研一上学期读的书比大学期间读的书还多,可是也不超过多少个手指,诸如《活着》、《解忧杂货店》、《追风筝的人》、《大顺这一个事》、《何人说您不能够坚贞不屈》等。虽说读了随后没有记住多少,但还有多少拿走。量变爆发质变,不积跬步无以至千里!俞敏洪曾说过,在她最忙的时候,一年足足也要读50本书,而我辈吧?我总是喜欢玩儿,时间就像海绵里的水,总有被挤干的一天。不过调侃归奚弄,不要总咋舌时光都去哪了,只要您想做一件事,这件事对你丰盛重要,你早晚能找到岁月。行胜于思,行动让思考变得更有意义。

岁月太仓促,贵在始终不渝!不要让二十多岁的要好真的无资本,无以后!把主动的想法付诸行动,在二十多岁的岁数,年轻是大家最大的老本,大家得以入股我们认为有含义的事!三分钟的热度,注定会让我们虚度着小日子,没有行进的来者不拒注定了平庸的和睦。走一步再走一步,逐渐的将考虑上的高个子引领到自己的行走中去,你将变得特别,你将变为亲善生存的主宰者,拥有美好的前景!Just
do it now.

-谨以此文致所有想让投机变得不平庸的人

数学,4. 不可变Map 和 可变Map

甲:“为了增强协调的日语水平,我们先天早上早起学法语吗,六点半起床,吃完饭,可以学一个刻钟,如何啊?前些天深夜自家叫您!” 
         
乙:“好啊!我也觉得十全十美的马耳他语水平对今后的提升很有帮忙,这将来我们就每一日中午早起学立陶宛语,不断加强自己!先天你叫自己啊!”
第二天,天亮啦~已经八点了。
甲:zzZZ~
乙:zzZZ~

4.1 不可变Map

不可变Map位于scala.collection.immutable包中。

比方,我们定义某学生的期末考试分数,它是一个不行变更的Map集合。

scala> val scores = Map("math"->90,"english"->85,"chinese"->80)
scores: scala.collection.immutable.Map[String,Int] = Map(math -> 90, english -> 85, chinese -> 80)

得到该学生的数学成就

scala> scores("math")
res8: Int = 90

获取该学生的微处理器战绩,其实并从未录入电脑课程的分数会现出什么情状吗?

scala> scores("computer")
java.util.NoSuchElementException: key not found: computer
  at scala.collection.immutable.Map$Map3.apply(Map.scala:156)
  ... 30 elided

不出意外地报了一个荒唐。
所以,我们得先判断一下map里是否含有总结机课程,包含的话就取出战绩,不含有的话只好默认0分,这样代码才安然。

scala> val computer = if (scores.contains("computer")) scores("computer") else 0
computer: Int = 0

这下,命令行就不会报错了。

二、早睡早起

古人云:早睡早起,方能爱惜。平素想有所健康的生活习惯,想拥有积极的生存情况。曾几哪一天,自己的早起被默认为是七点多,尤其现在没课的时候早上愈加容易被床所引发。想想研一的时候,偶尔还可以早起爬山,现在教授规定的八点半到教研室都得卡着点,太讨厌这样的友好!隔三差五内心就有个声响呼喊自己先天要早起,成功的次数屈指可数~早睡的话现在做的还算可以,基本上能保证在十一点左右,不会超越十一点半,关于早起,是时候付出点行动了!

1.2 混合类型表达式

scala> val i = 10
i: Int = 10

scala> val j = if (i>5) "String express" else 5
j: Any = String express

scala> println(j)
String express

相似三目运算符肯定是回来同一种档次,不过上述的代码在 if 和 else
里既有String类型又有Int类型。所以,重临的是多少个档次的共用超类型Any。

有积极的想法是很好的,不付诸行动它一贯是个想法,最后成为淡忘的想法,而友好如故原地踏步的自己,没有其它的进化,就像生活中的甲、乙二人一样。从前看了一篇名《20岁无成本无将来》著作,看完之后就想了想自己,想写一点东西,一贯在纠结题目用哪些适当,直到这天和彩姐聊天,才觉得用“思想上的巨人,行动上的矮子”仍旧蛮不错的。

3.2 ArrayBuffer

ArrayBuffer类似 Java 中的ArrayList。它是数组缓冲。

scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

scala> val arrayBuffer = new ArrayBuffer[Int]
arrayBuffer: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()

scala> arrayBuffer += 0
res7: arrayBuffer.type = ArrayBuffer(0)

scala> arrayBuffer += 1
res8: arrayBuffer.type = ArrayBuffer(0, 1)

scala> arrayBuffer += (2,3,4,5)
res9: arrayBuffer.type = ArrayBuffer(0, 1, 2, 3, 4, 5)

scala> arrayBuffer ++= Array(6,7,8,9,10) // 添加Array需要使用++
res10: arrayBuffer.type = ArrayBuffer(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> arrayBuffer.trimEnd(1) // 删除最后一个元素

scala> println (arrayBuffer)
ArrayBuffer(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

ArrayBuffer 还协理在自由地点展开添加(insert)和删除(remove)操作

scala> arrayBuffer.insert(2,100) // 在下标2处插入100

scala> println (arrayBuffer)
ArrayBuffer(0, 1, 100, 2, 3, 4, 5, 6, 7, 8, 9)

scala> arrayBuffer.insert(5,101,102) // 在下标5处插入101,102

scala> println (arrayBuffer)
ArrayBuffer(0, 1, 100, 2, 3, 101, 102, 4, 5, 6, 7, 8, 9)

反过来说,ArrayBuffer 的 remove 操作是同理。

除却, ArrayBuffer 还有 sum、max、min、sorted 等常用函数。

ArrayBuffer 到 Array 的转换: toArray

scala> arrayBuffer.toArray
res21: Array[Int] = Array(0, 1, 100, 2, 3, 101, 102, 4, 5, 6, 7, 8, 9)

3.1 Array

scala> val nums = new Array[Int](10) // 所有元素初始化为0
nums: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

scala> val strings = new Array[String](10) // 所有元素初始化为null
strings: Array[String] = Array(null, null, null, null, null, null, null, null, null, null)

scala> val names = Array("tony", "cafei", "aaron")
names: Array[String] = Array(tony, cafei, aaron)

scala> names(0)
res2: String = tony

一旦伊始化 Array ,只好修改 Array 中的元素,无法增加如故去除元素。

总结

这篇笔记依然整理一些基础的文化。

下一篇最先,我会收拾 Scala 的类相关的内容。

在此以前的篇章:
Scala学习笔记(二)
Scala学习笔记(一)

1. if/else 表达式

1.1 替代三目运算符

先用 Java 来写一段三目运算符的代码

int i = 10;
int j = i>5?i:5

Scala 由于没有 Java 的三目运算符(?:),然而好在可以用 if/else
表明式替代它。

scala> val i = 10
i: Int = 10

scala> val j = if (i>5) i else 5
j: Int = 10

地点的代码,还足以写成

scala> val i = 10
i: Int = 10

scala> var j =0
j: Int = 0

scala> if (i>5) j = i else j=5

scala> println (j)
10

只是,这种写法变量 j 需要定义成 var,因为 val
的变量一旦定义无法被改变略嫌麻烦 , 所以第一种写法会更好。

3.3 多维数组

Scala
多维数组是经过数组的数组来实现的。二维数组看起来像是Array[Array[Int]]。要协会这样一个数组,可以用ofDim方法。

二维数组的概念

scala> val matrix=Array.ofDim[Int](3,4) 
matrix: Array[Array[Int]] = Array(Array(0, 0, 0, 0), Array(0, 0, 0, 0), Array(0, 0, 0, 0))

三维数组的定义

scala> val matrix2 = Array.ofDim[Int](3,4,5)
matrix2: Array[Array[Array[Int]]] = Array(Array(Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0)), Array(Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0)), Array(Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0)))

故此,多维数组的定义:
Array.ofDim[类型](维度1, 维度2, 维度3,….)

2. 占位符_

Scala
可以把下划线“_”当做一个或两个参数的占位符,第一个下划线代表第一个参数,第二个下划线代表第二个,以此类推。只要每个参数在函数文本内仅出现两遍。

先看一段 Java 的代码,它将集结的各样元素都乘以2再打印出来。

Integer[] arrays = {1,2,3,4,5};
List<Integer> list = Arrays.asList(arrays);
list.stream().map(it->it*2).forEach(System.out::println);

再用占位符来简化上述的 Java 代码

scala> val list = Array(1,2,3,4,5)
list: Array[Int] = Array(1, 2, 3, 4, 5)

scala> list.map(_*2).foreach(println)
2
4
6
8
10

经过相比,彰着 Scala 的代码更加从简。

再来一个例子:两个占位符

scala> val f1 = (x:Int,y:Int) => x+y
f1: (Int, Int) => Int = $$Lambda$1011/349978505@1706a5c9

scala> f1(1,2)
res0: Int = 3

用两个占位符来简化下面的代码。

scala> val f2 = (_:Int)+(_:Int)
f2: (Int, Int) => Int = $$Lambda$1034/74606989@7b7683d4

scala> f2(1,2)
res1: Int = 3

5. 元组

元组(Tuple)是见仁见智门类的值的聚合。

概念一个元组:

scala> val tuple = (0,false,"Scala")
tuple: (Int, Boolean, String) = (0,false,Scala)

下一场我们可以用艺术_1、_2、_3做客其元素。

scala> println(tuple._1) // 打印第一个元素
0

scala> println(tuple._2) // 打印第二个元素
false

scala> println(tuple._3) // 打印第三个元素
Scala

值得注意的是,元组的目录是从1从头,而数组的目录是从0先河。

通常,使用模式匹配来博取元组的因素。

scala> val (first, second, third)=tuple
first: Int = 0
second: Boolean = false
third: String = Scala

假定并不是所有的因素都急需,那么可以在不需要的要素地方上利用占位符_:

scala> val (first, second, _ ) = tuple
first: Int = 0
second: Boolean = false

Scala的功底语法

继上一篇的基本功语法之后,我又收拾了有些私有学习过程中认为相比较重大的语法。

4.2 可变Map

可变Map位于scala.collection.mutable包中。
对于刚刚的意况,添加该学员电脑的实绩。

scala> scores +=("computer"->88)
<console>:13: error: value += is not a member of scala.collection.immutable.Map[String,Int]
       scores +=("computer"->88)

scala是会报错的,因为scores是不足变map。

再一次定义scores,让它成为可变的map,这样就足以增长另妇科目标战表了。

scala> val scores = scala.collection.mutable.Map("math"->90,"english"->85,"chinese"->80)
scores: scala.collection.mutable.Map[String,Int] = Map(chinese -> 80, math -> 90, english -> 85)

scala> scores +=("computer"->88)
res12: scores.type = Map(computer -> 88, chinese -> 80, math -> 90, english -> 85)

换一个角度,大家来探视哪些定义一个空的Map

scala> val map=new scala.collection.mutable.HashMap[String,Int]()
map: scala.collection.mutable.HashMap[String,Int] = Map()

scala> map += ("computer"->88)
res15: map.type = Map(computer -> 88)

scala> map +=  ("math"->90,"english"->85,"chinese"->80)
res16: map.type = Map(computer -> 88, chinese -> 80, math -> 90, english -> 85)

scala> println (map)
Map(computer -> 88, chinese -> 80, math -> 90, english -> 85)

scala> map.getClass
res18: Class[_ <: scala.collection.mutable.HashMap[String,Int]] = class scala.collection.mutable.HashMap

前程,我会单独再整治一篇集合相关的稿子。

相关文章

No Comments, Be The First!
近期评论
    分类目录
    功能
    网站地图xml地图