博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-11-16 中文代码示例之Programming in Scala笔记第四五六章
阅读量:4614 次
发布时间:2019-06-09

本文共 1262 字,大约阅读时间需要 4 分钟。

续前文: . 同样仅节选有意思的例程部分作演示之用. 源文档仍在:

第六章 功能对象

此章的例子与之前的有些共鸣, 以后的数学知识部分可以参考此实现.

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 校验码 = 累加器.校验()      缓存 += (文本 -> 校验码)      校验码    }}

转载于:https://www.cnblogs.com/program-in-chinese/p/10508378.html

你可能感兴趣的文章
游戏人生(一),我的lua之旅:那些坑爹的CCBReaderLoad
查看>>
heap与stack的差
查看>>
yii2 rules 验证规则
查看>>
去掉bootstrap表单空间获得焦点时四周的闪光阴影
查看>>
不能下载源码idea maven
查看>>
矩阵乘法快速幂 cojs 1717. 数学序列
查看>>
设计模式理解(八)结构型——装饰者模式(记得加上UML图 --- 未完)
查看>>
iframe实现局部更新
查看>>
java 1.5 自动拆箱和装箱的注意事项
查看>>
python3 smtp 自动发送邮件
查看>>
七分频占空比为50%电路设计
查看>>
使用ASP.NET AJAX ,遇到Sys 未定义解决方法
查看>>
jenkins 每个月1号到7号 一天执行一次
查看>>
HTML页面生成ASPX页面
查看>>
Linux程序设计(第4版)
查看>>
PHP中的11个魔术方法总结:__construct,、__destruct、__call等
查看>>
Python3学习笔记十三
查看>>
垃圾回收的常见算法
查看>>
什么是obj文件?
查看>>
linux中 tar .gz bz2 xz 怎么用 解压
查看>>