首页 技术 正文
技术 2022年11月18日
0 收藏 435 点赞 4,696 浏览 961 个字

续前文: 中文代码示例之Programming in Scala学习笔记第二三章. 同样仅节选有意思的例程部分作演示之用. 源文档仍在: program-in-chinese/Programming_in_Scala_study_notes_zh

第六章 功能对象

此章的例子与之前的初步尝试将传统学科的内容程序/数据化有些共鸣, 以后的数学知识部分可以参考此实现.

class 有理数(分子: Int, 分母: Int) {
require(分母 != 0)
private val 公约数 = 最大公约数(分子.abs, 分母.abs) val 分子值: Int = 分子 / 公约数
val 分母值: Int = 分母 / 公约数 def this(数: Int) = this(数, 1) def + (数: 有理数): 有理数 =
new 有理数(
分子值 * 数.分母值 + 数.分子值 * 分母值,
分母值 * 数.分母值
) def + (数: Int): 有理数 =
new 有理数(分子值 + 数 * 分母值, 分母值) def - (数: 有理数): 有理数 =
new 有理数(
分子值 * 数.分母值 - 数.分子值 * 分母值,
分母值 * 数.分母值
) def - (数: Int): 有理数 =
new 有理数(分子值 - 数 * 分母值, 分母值) def * (数: 有理数): 有理数 =
new 有理数(分子值 * 数.分子值, 分母值 * 数.分母值) def * (数: Int): 有理数 =
new 有理数(分子值 * 数, 分母值) def / (数: 有理数): 有理数 =
new 有理数(分子值 * 数.分母值, 分母值 * 数.分子值) def / (数: Int): 有理数 =
new 有理数(分子值, 分母值 * 数) override def toString = 分子值 + "/" + 分母值 private def 最大公约数(甲: Int, 乙: Int): Int =
if (乙 == 0) 甲 else 最大公约数(乙, 甲 % 乙)
}

第四章 类和对象

// 在文件"校验累加器.scala"中
import scala.collection.mutableobject 校验累加器 {
private val 缓存 = mutable.Map.empty[String, Int] def 计算(文本: String): Int =
if (缓存.contains(文本))
缓存(文本)
else {
val 累加器 = new 校验累加器
for (字符 <- 文本)
累加器.加(字符.toByte)
val 校验码 = 累加器.校验()
缓存 += (文本 -> 校验码)
校验码
}
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,083
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,558
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,407
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,180
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,817
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,899