2.5k 2 分钟

分而治之(Divide and Conquer):将一个复杂的问题,分解成若干个规模相同或类似的子问题,然后再对这些子问题再进一步细分,直到最后的子问题变得很简单,很容易就能被求解出来,这样这个复杂的问题就求解出来了。 归并排序中就运用到了分而治之的思想。 实现步骤 对数组进行拆分,后面具体实现中是对数组进行左右两等分(二路归并) 分别对拆分后的左右数组进行排序 当待排序数组只有一个元素时直接返回该数组 将左右排序好的数组合并成一个数组,并返回 # 归并排序并返回新数组 归并排序pub mod merge_not_inplace { use...
42k 38 分钟

参考书籍中使用到的辅助库代码 cuon-matrix.js// cuon-matrix.js (c) 2012 kanda and matsuda/** * This is a class treating 4x4 matrix. * This class contains the function that is equivalent to OpenGL matrix stack. * The matrix after conversion is calculated by multiplying a conversion matrix from the right. * The...
9.4k 9 分钟

参考书籍:《WebGL 编程指南》 # canvas canvas 是 HTML5 新增标签,用于定义网页上的绘图区域,可以通过 JavaScript 代码在上面绘制图形 关于 Canvas 更多信息请参考 MDN 相关文档 Canvas 简单使用示例 HelloCanvas.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta...
710 1 分钟

OS:OpenCloudOS 8.6(兼容 CentOS 8) 安装方式:使用 yum 安装 MySQL8 # 安装 MySQL Yum 仓库 去 MySQL Yum Repository 下载需要的 yum 仓库 #wget https://repo.mysql.com//your-mysql-yum-repository.rpmwget https://repo.mysql.com//mysql80-community-release-el8-4.noarch.rpm然后安装下载好的 yum 仓库 rpm -ivh...
3.3k 3 分钟

参考书籍《Ruby 元编程(第二版)》 Ruby 版本:书上使用的是 2.x,自己使用的 3.1.2 # 动态调用方法 使用 [Object#send] 可以进行动态调用方法。send 方法的第一个参数是要调用的方法名字(可以是字符串或符号),剩下的参数和代码块会直接传递给调用的方法,这样可以在代码运行的最后一刻决定调用那个方法,这个技巧被称为动态派发(Dynamic Dispatch) 示例代码class MyClass def my_method(my_arg) my_arg * 2 endendobj = MyClass.new# 常规调用方式p obj.my_method(3)...
1.3k 1 分钟

参考书籍《Ruby 元编程(第二版)》 Ruby 版本:书上使用的是 2.x,自己使用的 3.1.2 # 关于 self 和私有方法调用之间的问题 # Ruby2.7 之前版本 在 Ruby 2.7 之前,可以使用 self 调用一个私有写入 / 赋值方法,但是使用 self 调用任何其他私有方法将抛出 NoMethodError。 示例如下: ruby2.7以前class Counter def reset self.count = 0 # 允许调用 puts self.count # 抛出异常 end private attr_accessor...
1.8k 2 分钟

参考单个 GitHub 帐号下添加多个 GitHub Pages 的相关问题 参考 Github Pages Docs # 概述 GitHub Pages 分为: 用户 / 组织主页以及项目主页 用户主页或组织主页分别都只能存在一个 repo,而项目主页则没有 repo 数量限制 若要发布用户主页,必须创建名为 <username>.github.io 的 repo; 若要发布组织主页,必须创建名为 <organization>.github.io 的 repo; 而项目主页的仓库则没有名称限制 用户主页默认域名形式为...
3.9k 4 分钟

参考书籍《Ruby 元编程(第二版)》 Ruby 版本:书上使用的是 2.x,自己使用的 3.1.2 # 打开类 Ruby 中的 class 关键字只有在第一次使用时是作为类型声明语句使用,用于定义一个目前不存在的类。 对于已经存在的类,class 关键字的作用更像是一个作用域操作符,把你带到类的上下文中,让你可以在里面定义方法。 这种重新打开已有类并对之进行动态修改的方式就称为打开类。 在 Ruby 中标准库中的类也是可以重新打开的。 打开类的实例 打开类# monetize 是 Ruby 中一个管理资金和现金的工具类# 没有安装过这个包的话可以使用 gem install...
1k 1 分钟

# 异常处理语句 Ruby 使用 begin~rescue~end 语句描述异常处理,类似于 Java 中的 try~catch 块 异常处理begin 可能发生发生异常异常的代码rescue 发生异常时的处理end rescue 后面可以指定一个变量名,用于获取异常对象 获取异常对象begin ....rescue => 引用异常对象的变量 ....end 即使在 rescue 后不指定变量名,Ruby 也会把异常对象赋值给变量...
4.7k 4 分钟

# 变量 Ruby 中有四种类型的变量,变量的命名方式决定了变量的类型 局部变量 以英文字母或者_开头 全局变量 以 $ 符号开头 实例变量 以 @ 符号开头 类变量 以 @@ 开头 除了上述四种类型以外,还有伪变量、预定义变量这两种特殊变量。它们是 Ruby 预先定义好的 代表某特定值的特殊变量。伪变量不能改变其本身的值,对其赋值会产生错误,Ruby 中,self、 true、false、nil 等都是伪变量。预定义变量全部都是以 $ 开头的变量,$$ 就是其中一个, 它的值表示当前执行中的 Ruby 进程 ID 常量:以大写英文字母开头,多个单词间使用下划线 (_) 隔开。比如...