Scala学习整理[总结篇]<Programming In Scala>

第二课细读Scala

SecondWIthProgrammingInScala

结合之前的学习和感想 ,顺序细读一遍Scala的书 ,整理

  • 为了方便查看和管理代码 ,书中包含的脚本/Scala解释器部分我都用mian函数去测试 ,方便记录
  • 当然Scala的解释器和脚本运行方式也是要去尝试一下的 ,也是很特别的

任务完成

  • 利用这段空闲时间阅读完了Programming In Scala中文版的书 ,对Scala有了一个大致的了解 .中文版的书一共33章(第33是综合章节 ,书写一个GUI) ,都通过代码+注释的方式进行了阅读和理解
总结
  • 作为一个以Java入门的程序猿 ,Scala给我的印象非常深 .在写Java的时候可能需要写很大一片代码 ,才能描述清楚一个继承关系/接口定义/工厂类 .使用Scala的话 ,从语法上就较少了冗余(比如类型定义).
  • Scala提倡的函数式思想 ,val+递归的使用也耗费了我不少脑细胞去思考如何重构(虽然效率上需要谨慎考虑).显然 ,这是一门”随性的”语言 ,不同的人写出来的代码是非常不一样的.
个人看法
  • 关于语言的争论 ,从 语言种类>2 时候就开始了 ,特别是Java是被吐槽的最多的 ,”一次编译 ,全平台运行”这个最初的特点也被不少人嘲笑 .现在一些新的语言在很多方面确实优于Java或是其他语言 ,但是”存在即合理”

  • Scala ,可以充分发挥程序猿自己的能力 ,你有多了解这门语言/了解JVM/了解JAVA/了解计算机结构 ,你就能重构你的代码 ,甚至制定你自己的编译规则(语法糖) ,对你自己来说可以减少非常多的工作量 .

  • 不过 ,个性化的东西越多 ,当另一个人接手的时候需要花更多的时间去熟悉”你的规则”
  • 在工程开发中 ,语言只是一个工具 ,选择一个工具 ,依赖的应该是成本(包括人力/技术/附属产品) ,这也是Java语言不怎么样 ,但是Java生态圈确是主流的原因 .

不管怎么样 ,往广度走 “技多不压身” ,有充分的选择 ;往深度走 ,”学而精” ,用命令行都能写出操作系统.

package SecondWithProgrammingInScala

import java.awt.Font
import java.io._
import javax.swing.border._

import scala.collection.mutable.ListBuffer
import scala.swing.{BoxPanel, _}
import scala.swing.event.ButtonClicked
import scala.util.Random


object WhereEatDinner extends SimpleSwingApplication {
   

  override def top: Frame = new MainFrame {
    preferredSize_=(new Dimension(500, 600))
    //参数
    var optionList = DinnerOption.getOptionsFromFile

    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scala 中,可以使用 XML 字面量来创建 XML 元素和属性。以下是一个示例: ```scala val book = <book> <title>Scala in Action</title> <author>Nilanjan Raychaudhuri</author> <publisher>Manning Publications</publisher> <price>29.99</price> </book> ``` 在这个例子中,我们使用 XML 字面量来创建一个 `book` 元素,并添加了 `title`、`author`、`publisher` 和 `price` 子元素,每个子元素的值都是一个字符串。 我们还可以添加属性,如下所示: ```scala val book = <book category="programming"> <title>Scala in Action</title> <author>Nilanjan Raychaudhuri</author> <publisher>Manning Publications</publisher> <price>29.99</price> </book> ``` 在这个例子中,我们添加了一个 `category` 属性,并将其设置为 `"programming"`。 要访问 XML 元素或属性的值,我们可以使用点号 `.` 和括号 `()` 运算符。例如,要获取 `book` 元素的 `title` 子元素的值,可以使用以下代码: ```scala val title = book.title.text ``` 在这个例子中,我们使用 `.` 运算符访问 `title` 子元素,并使用 `text` 方法获取其值。类似地,我们可以使用以下代码获取 `book` 元素的 `category` 属性的值: ```scala val category = book.attribute("category").get.text ``` 在这个例子中,我们使用 `attribute` 方法获取 `category` 属性,并使用 `get` 方法将 `Option` 类型转换为其包含的值。然后,我们使用 `text` 方法获取属性的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值