标签分类 热门分类
当前位置:首页 > 程序设计电子书 > Scala电子书网盘下载
Scala谜题 Scala谜题
郑子骞

郑子骞 提供上传

资源
37
粉丝
48
喜欢
154
评论
10

    Scala谜题 PDF 影印版

    Scala电子书
    • 发布时间:

    给大家带来的一篇关于Scala相关的电子书资源,介绍了关于Scala、谜题方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小70 MB, Andrew Phillips 菲利普编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.9,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • Scala谜题 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1xnYiNhdkmugSUHhXFdp5H
  • 分享码:8jq3
  • Scala是一种多范式的编程语言,其设计初衷是要整合面向对象编程和函数式编程的各种特性。 《Scala谜题》整合了众多典型的Scala代码示例,深入解密Scala。书中不仅介绍了Scala语言,还介绍了编译器。《Scala谜题》通过有趣的方式带领读者学习并深入理解和掌握Scala。全书共有36个谜题,每一个谜题都可以丰富读者的知识,并能够让读者更深入地了解Scala。 《Scala谜题》适合于对Scala感兴趣的开发者、对JVM平台上的语言以及函数式编程感兴趣的程序员阅读。

    目录

    • 第1章 使用占位符 1
    • 可能的结果 1
    • 解释 2
    • 讨论 3
    • 第2章 初始化变量 5
    • 可能的结果 5
    • 解释 6
    • 讨论 7
    • 第3章 成员声明的位置 9
    • 可能的结果 10
    • 解释 10
    • 讨论 12
    • 第4章 继承 14
    • 可能的结果 14
    • 解释 15
    • 讨论 16
    • 解决方法 17
    • 第5章 集合操作 21
    • 可能的结果 21
    • 解释 22
    • 讨论 23
    • 第6章 参数类型 24
    • 可能的结果 25
    • 解释 25
    • 讨论 27
    • 第7章 闭包 29
    • 可能的结果 29
    • 解释 30
    • 讨论 32
    • 第8章 Map表达式 33
    • 可能的结果 33
    • 解释 34
    • 讨论 35
    • 第9章 循环引用变量 37
    • 可能的结果 37
    • 解释 38
    • 讨论 40
    • 第10章 等式的例子 44
    • 可能的结果 45
    • 解释 46
    • 讨论 48
    • 第11章 lazy val 51
    • 可能的结果 51
    • 解释 52
    • 讨论 53
    • 第12章 集合的迭代顺序 54
    • 可能的结果 55
    • 解释 55
    • 讨论 57
    • 第13章 自引用 58
    • 可能的结果 58
    • 解释 58
    • 讨论 60
    • 第14章 Return语句 62
    • 可能的结果 62
    • 解释 63
    • 讨论 64
    • 第15章 偏函数中的_ 67
    • 可能的结果 67
    • 解释 68
    • 讨论 71
    • 第16章 多各参数列表 73
    • 可能的结果 74
    • 解释 74
    • 讨论 76
    • 第17章 隐式参数 78
    • 可能的结果 78
    • 解释 79
    • 讨论 80
    • 第18章 重载 83
    • 可能的结果 84
    • 解释 84
    • 讨论 86
    • 第19章 命名参数和缺省参数 88
    • 可能的结果 89
    • 解释 89
    • 讨论 91
    • 第20章 正则表达式 93
    • 可能的结果 93
    • 解释 94
    • 讨论 95
    • 第21章 填充 97
    • 可能的结果 97
    • 解释 98
    • 讨论 99
    • 第22章 投影 101
    • 可能的结果 101
    • 解释 102
    • 讨论 105
    • 第23章 构造器参数 106
    • 可能的结果 107
    • 解释 107
    • 讨论 109
    • 第24章 Double.NaN 111
    • 可能的结果 111
    • 解释 112
    • 讨论 114
    • 第25章 get Or Else 116
    • 可能的结果 116
    • 解释 116
    • 讨论 118
    • 第26章 Any Args 120
    • 可能的结果 120
    • 解释 121
    • 讨论 122
    • 第27章 null 124
    • 可能的结果 124
    • 解释 125
    • 讨论 127
    • 第28章 Any Val 129
    • 可能的结果 130
    • 解释 130
    • 讨论 132
    • 第29章 隐式变量 135
    • 可能的结果 136
    • 解释 137
    • 讨论 138
    • 第30章 显式声明类型 141
    • 可能的结果 141
    • 解释 142
    • 讨论 143
    • 第31章 View 145
    • 可能的结果 145
    • 解释 146
    • 讨论 147
    • 第32章 to SettoSet 148
    • 可能的结果 148
    • 解释 148
    • 讨论 152
    • 第33章 缺省值 154
    • 可能的结果 155
    • 解释 156
    • 讨论 157
    • 第34章 关于Main 159
    • 可能的结果 160
    • 解释 161
    • 讨论 162
    • 第35章 列表 165
    • 可能的结果 166
    • 解释 166
    • 讨论 168
    • 第36章 计算集合的大小 169
    • 可能的结果 169
    • 解释 170
    • 讨论 171
    • 参考文献 174
    • 作者简介 176
    • 主题索引 177

    上一篇:DevOps:原理、方法与实践  下一篇:Visual Basic 2013从入门到精通

    展开 +

    收起 -

     
    Scala 相关电子书
    关于Scala的学习笔记
    网友NO.623650

    Scala实现冒泡排序、归并排序和快速排序的示例代码

    1、冒泡排序 def sort(list: List[Int]): List[Int] = list match { case List() = List() case head :: tail = compute(head, sort(tail)) } def compute(data: Int, dataSet: List[Int]): List[Int] = dataSet match { case List() = List(data) case head :: tail = if (data = head) data :: dataSet else head :: compute(data, tail) }def main(args: Array[String]) { val list = List(3, 12, 43, 23, 7, 1, 2, 0) println(sort(list)) } 2、归并排序 def mergedSort[T](less: (T, T) = Boolean)(list: List[T]): List[T] = { def merged(xList: List[T], yList: List[T]): List[T] = { (xList, yList) match { case (Nil, _) = yList case (_, Nil) = xList case (x :: xTail, y :: yTail) = { if (less(x, y)) x :: merged(xTail, yList) else y :: merged(xList, yTail) } } } val n = list.length / 2 if (n == 0) list else { val (x, y) = list splitAt n merged(mergedSort(less)(x), mergedSort(less)(y)) } }def main(args: Array[String]) { val list = List(3, 12, 43, 23, 7, 1, 2, 0) println(mergedSort((x: Int, y: Int) = x y)(list)) } 3、快速排序 def quickSort(list: List[Int]): List[Int] = { list match { case Nil = Nil case List() = List() case head :: tail = val (left, right) = tail.partition(_ head) quickSort(left) ::: head :: quickSort(right) } }def main(args: Array[String]) { val list = List(3, 12, 43, 23, 7, 1, 2, 0) println(quickSort(list)) } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。 ……

    网友NO.941008

    scala操作数据库的方法实例

    1、定义数据库连接 package com.web.dataSource import com.alibaba.druid.pool.DruidDataSource object MySqlDataSource { val driver = com.mysql.jdbc.Driver val url = jdbc:mysql://127.0.0.1:3306 val username = root val password = root val connectionPool = new DruidDataSource() connectionPool.setUsername(username) connectionPool.setPassword(password) connectionPool.setDriverClassName(driver) connectionPool.setUrl(url) connectionPool.setValidationQuery(select 1) connectionPool.setInitialSize(15) connectionPool.setMinIdle(10) connectionPool.setMaxActive(100) connectionPool.setRemoveAbandoned(true) connectionPool.setRemoveAbandonedTimeoutMillis(180000) connectionPool.setMaxWait(5000) connectionPool.setTestOnBorrow(false) connectionPool.setTestOnReturn(false) } 2、执行查询 def getOptions(uid:Int) ={ val connection = MySqlDataSource.connectionPool.getConnection var sql = s select username,password,sex |from user |where uid = ? .stripMargin var stmt = connection.prepareStatement(sql) stmt.setInt(1, uid) var resultSet = stmt.executeQuery() var resultListMap = List[Map[String,String]]() //获取结果 while(resultSet.next()){ resultListMap = resultListMap :+ Map( username-resultSet.getString(username), password-resultSet.getString(password), sex-resultSet.getInt(sex), ) } //关闭连接 stmt.close() connection .close() //返回结果 resultListMap } 3、插入数据 object UpdateLocation { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName(UpdateLocat……

    网友NO.989001

    Scala中的mkString的具体使用方法

    1.mkString()方法的使用: mkString(seq:String)方法是将原字符串使用特定的字符串seq分割。 mkString(statrt:String,seq:String,end:String)方法是将原字符串使用特定的字符串seq分割的同时,在原字符串之前添加字符串start,在其后添加字符串end。 object Test { def main(args: Array[String]): Unit = { var name : String = "Hello LittleLawson" var age :Int = 2 println(name.mkString) println(name.mkString(" "))//separate string with space var str0 = "scala" println(str0.mkString(","))//separate string with comma println(str0.mkString("begin",",","end")) /* 1.mkString is used in the inner List,That is say ,Elements in the list is applied. */ val a = List(1,2,3,4) val b = new StringBuilder() println(a.mkString("List(" , ", " , ")")) }} 执行结果如下: Hello LittleLawson H e l l o L i t t l e L a w s o n s,c,a,l,a begins,c,a,l,aend List(1, 2, 3, 4) Process finished with exit code 0 2.scala通过mkString方法把一个集合转化为一个字符串 Problem 如果你想要把集合元素转化为字符串,可能还会添加分隔符,前缀,后缀。 Solution 使用mkString方法来打印一个集合内容,下面给一个简单的例子: scala val a = Array("apple", "banana", "cherry")a: Array[String] = Array(apple, banana, cherry)scala a.mkStringres3: String = applebananacherry 使用mkString方法你会看到结果并不漂亮,我们来加一个分隔符: scala a.mkString(",")res4: String = apple,banana,cherrysc……

    网友NO.834162

    scala+redis实现分布式锁的示例代码

    1、redis的底层是单例模式,意思是同一个脚本同一时刻只能有一个线程来执行,利用redis的这个特性来实现分布式锁。 首先实现工具类 package utils import CacheManager /** * redis分布式锁 */object RedisTool { //加锁是否成功标志 val LOCK_SUCCESS:String = "OK" //即当key不存在时,我们进行set操作;若key已经存在,则不做任何操作; val SET_IF_NOT_EXIST:String = "NX" //意思是我们要给这个key加一个过期的设置,具体时间由第五个参数决定。 val SET_WITH_EXPIRE_TIME:String = "PX" val RELEASE_SUCCESS:String = "1" /** * * @param lockKey 锁 * @param requestId 请求标识 * @param expireTime 超期时间 * @param isPersist 临时缓存或者永久缓存 */ def tryGetDistributedLock(lockKey:String, requestId:String, expireTime:Int,isPersist:Boolean=false){ CacheManager.redisClientPool.withClient( client = { //val redisKeyPrefix = CacheManager.getRedisKeyPrefix(isPersist) client.select(CacheManager.redisDBNum) val result = client.set(lockKey, requestId, SET_IF_NOT_EXIST, SET_WITH_EXPIRE_TIME, expireTime) var flag = false if(LOCK_SUCCESS == result){ flag = true } flag } ) } /** *释放分布式锁 * @param lockKey 锁 * @param requestId 请求标识 * @param expireTime 超期时间 * @param isPersist 临时缓存或者永久缓存 * @return */ def releaseDistributedLock(lockKey:String, requestId:String,expireTime: Int = 10,isPersist:Boolean=false) ={ CacheManager.redisClientPool.with……

    网友NO.818114

    scala文件操作和网络请求的实操方法

    1、读取文件当中每一行的数据 def main(args: Array[String]): Unit = { //注意文件的编码格式,如果编码格式不对,那么读取报错 val file: BufferedSource = Source.fromFile(F:\\files\\file.txt,GBK); val lines: Iterator[String] = file.getLines() for(line - lines){ println(line) } //注意关闭文件 file.close() } 如果要将文件内容转数组,直接调用toArray即可 2、读取词法单元和数字 如果想将以某个字符或某个正则表达式分开的字符成组读取,可以这么做: def main(args: Array[String]): Unit = { val file: BufferedSource = Source.fromFile(F:\\files\\file2.txt,GBK); val split: Array[String] = file.mkString.split( ) println(split.mkString(\t)) file.close() } 3、读取网络资源、文件写入、控制台操作 1、读取网络资源 def main(args: Array[String]): Unit = { val source: BufferedSource = Source.fromURL(http://www.baidu.com) val string: String = source.mkString println(string) source.close() } 2、文件写入操作 def main(args: Array[String]): Unit = { val writer = new PrintWriter(F:files\\printWriter.txt) for(i - 1 to 100){ writer.println(i) writer.flush() } writer.close() } 3、控制台交互操作 def main(args: Array[String]): Unit = { //控制台交互--老API print(请输入内容:) val consoleLine1 = Console.readLine() println(刚才输入的内容是: + consoleLine1) //控制台交互--新API print(请输入内容(新API):) val consoleLine2 = StdIn.readLine() println(刚才输入……

    Copyright 2018-2020 xz577.com 码农之家

    电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

    鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com

    上传资源(网友、会员均可提供)

    查看最新会员资料及资源信息