PIXI.js源码解析(7)- shape对象

pixi有很多shape对象,类似Circle,Rectangle。这些不是真正用来显示到界面上的对象,只是代表对应的数学上图形,主要作用是辅助运算,以及保存一些数据。基本上所有ui框架中都有类似的类,改一下语法就可以放到别的语言别的库里使用。我写过一个java的渲染库,用的shape就是直接把p...

2018-11-01 22:10:51

阅读数 245

评论数 0

JS给数字添加扩展方法

扩展方法就是给原生类型添加方法,让对象用起来更加方便,JS作为一个动态语言,只要在原型链上稍作修改就可以给现有类添加方法(在js里提类可能不太恰当,但是我想不出别的说法了) 先回忆一下如何给Array添加一个拓展方法 Array.prototype.get=function (inde...

2018-10-24 14:58:47

阅读数 380

评论数 0

埃拉托斯特尼筛法详解及实现

埃拉托斯特尼筛法是一个快速获取小于数X的所有素数集合的算法。 首先我们要明确,假设一个合数x能表示为两个数的乘积,他必定有一个小于等于sqrt(x)的因子,这可以用归谬证明法证明。如果两个因子都大于sqrt(x),那么乘积大于x,这和假设矛盾。 所以,判断一个数x是否是合数,只要依次除以2至s...

2018-03-08 23:48:32

阅读数 2637

评论数 0

从C到C++,汇编中类的实现

实例变量的初始值在C中,结构体的变量是不能赋初始值的,而是在使用结构体的时候才能指定他们的初始化值,体现在汇编就是在栈帧中按照顺序依次赋值。在C++中,这个初始化就是靠构造函数来实现的。在很多书中,常常说到如果不显示指定构造函数,编译器会默认添加一个构造函数,这种说法是不严谨的,如果构造函数没有任...

2018-03-01 19:36:52

阅读数 955

评论数 0

C语言直接返回结构体汇编后结果

(以下为使用vc以及debug编译下的结果)一般来说,返回小于等于4字节的基本类型,例如short,int,都是直接使用eax寄存器返回,而指针,也是使用eax寄存器返回。 如果是8字节的基本类型,例如c++的long long 类型,很可能是使用两个寄存器,如eax和edx返回结果。 实际上...

2018-02-23 18:55:50

阅读数 971

评论数 0

C++模板VSJava泛型

JAVA java泛型是实现是通过强制cast。 如 static T test(T a){ return a; } //该方法最后会被转换成如下形式 static Object test(Object a){ return a; ...

2018-02-07 00:07:01

阅读数 118

评论数 0

Groovy元编程(1)

Groovy使用ruby也好久了,虽然钟情于ruby语法的无穷灵活性,不过一直苦于没法使用java平台上各种各样的框架。虽然也早有jruby这样的存在,但是速度还是很成问题,而且这种间接的调用,使用起来也感觉不舒服。学习了groovy之后,我觉得,如果喜欢ruby的朋友,都可以来试试jvm平台上的...

2018-01-28 16:43:02

阅读数 824

评论数 0

guava深入理解(6)-eventbus,Caches

Eventbus学过as3或者js事件流的应该对这个很熟悉了(抽象的addEventlistenter),guava的eventbus基本上可以看成是前者的弱化版。 在gui或者异步编程中,回调模式非常常见,而eventbus就是将这种监听-回调的模式抽象出来。基本上来说,就是一个事件发布者,持...

2018-01-19 14:28:01

阅读数 71

评论数 0

guava深入理解(5)-IO

除了java之外的其他几种jvm语言,例如kotlin,groovy,scala,在自带的库里,已经对文件以及io操作有了非常大的增强,而相比之下java的一些io方法相当原始,所以我们只能求助于类库。虽然自己写一些工具类并不费什么事,但是guava提供的io方法不仅效率高,而且抽象度也高,所以非...

2018-01-19 13:47:17

阅读数 159

评论数 0

guava深入理解(4)-集合

如果说guava的null处理,Preconditions,字符串处理很多别的库也有而且还更强。而且如果使用其他jvm语言,kotlin,groovy等,根本就用不上那些类,语言自带的反而更好。那么guava的collection类基本上目前还看不出有其他类库,语法特性可以替代。就算你是使用kot...

2018-01-19 12:02:50

阅读数 191

评论数 0

guava深入理解(3)-字符串,实用方法,函数式编程

字符串处理Joiner是用来拼接转化集合到字符串的(其实很多动态语言基本上没有太区分字符串和普通集合,很多在集合上能用的方法在字符串上也能用,字符串本来就就是个字符数组)Joiner.on("|").skipNulls().join(new Integer[]{1,2,3,4}...

2018-01-18 20:45:51

阅读数 80

评论数 0

guava深入理解(2)-前置条件Preconditions

前置条件检测和null处理有异曲同工之妙,也是我们天天都在做的,比如传入一个索引,我们可能需要检查他的值是不是超过了数组大小。 说白了,我们会需要写这种检测,还是因为类型系统的问题,类型系统可以限制一个类型能做的事情,却没法限制类型本身的数据。比如一个数字1,和一个数字100,他们是同一个类型,...

2018-01-18 20:13:23

阅读数 93

评论数 0

guava深入理解(1)-null处理

guava是一个基础型的类库,就是他不是针对某一方面的应用开发的(例如okhttp专门用于网络通信),而是为了弥补java语言的一些设计不好的地方,或者某些缺失的特性,当然,因为guava开发的时候是java6,但现在已经java9了。所以guava里所提供的一些功能已经被java语言自身的改善弥...

2018-01-18 19:36:21

阅读数 234

评论数 0

Ruby标准库中方法名称的?和!后缀

其实这两个符号没有什么特殊作用,只是方法名的一部分,但是他们代表了ruby的一些希望你编写方法时遵守的规则。(当然你也可以不遵守) 可以看到,标准库中所有后缀为?的方法,返回的都是布尔值。这点其实倒没什么,我们在java ,c++中更倾向于用前缀is(而且java,c++方法名里也不能出现? !...

2018-01-11 21:33:30

阅读数 245

评论数 0

Ruby Mixin与c++多继承的问题

看到许多地方写到,ruby的mixin可以完美解决c++多继承带来的问题。(包括一本著名的书《programing ruby》),而对怎么解决,却常常语焉不详 我就纳闷了,哪里解决了?该出现的问题还是会出现,而且更难发现了。 首先先回忆一下c++多继承导致的问题 一个类,同时继承两个类,两个...

2018-01-11 15:10:15

阅读数 172

评论数 0

Ruby实现高阶函数

ruby的方法块并不像js,as,c#,kotlin或者其他语言一样那样可以直接传递,他非要转换成proc的对象才能处理,这点有些蛋疼 #高阶函数 #方法参数需要加前缀&来识别 def n_times(times,&sth) #方法块想转换成可以返回的proc需要用lambd...

2018-01-09 13:19:00

阅读数 256

评论数 0

Ruby对比java,c++变量作用域问题

很多有java,c#,c++经验但没有ruby,perl经验的人初次学习应该都会被ruby,perl的变量作用域搞的有点混(我一开始也是)。看了一些书,对这个地方也没有做清楚的解释或者根本没有解释。 其实只要知道一点,java,c++,c#这些语言中,变量的最大作用域和他声明的位置有关,例如在方...

2018-01-09 11:10:31

阅读数 395

评论数 0

计数问题

计数问题是在离散数学以及算法设计中非常容易碰到的一类问题。 计数问题都可以归结成从集合中取元素的问题。 难点主要是 1.每次取完一个元素后,是否会使集合发生变化(例如集合元素减少),此时之后再次取元素就会受到影响,如果不考虑清楚这点很容易出错。 有些问题是从不同的集合中取元素,有些问题是从...

2018-01-08 19:05:45

阅读数 518

评论数 0

离散数学-数学归纳法(1)

数学归纳法是一种证明技术,除了在数学领域中有很大作用外。在编程领域中,也常常使用它的某种变体来证明算法的正确性(在算导里面就多次用到该技术,来证明各种算法,特别是一些比较复杂的图算法的正确性) 个人感觉,学习数学归纳法以及经过一段时间的练习后,可以非常自然的把一些算法,看成数学归纳法中的几个组成...

2018-01-06 00:14:37

阅读数 850

评论数 0

英语语法学习笔记-形容词

语言是我们对世界的一种认知,那么语言中的名词可以看成客观存在的实体,那么某种实体必定由多种特性组成,而修饰词就是描述这种特性的词类。 (其实我个人觉得,世上本没有什么名词,只有修饰词的聚合,这种描述特性的聚合才是我们对某种实体的概念,例如,问你电脑是什么,你会说可以计算,可以上网,可以打游戏,这...

2018-01-03 13:54:53

阅读数 441

评论数 0

提示
确定要删除当前文章?
取消 删除