为什么想要把 C# 的方法扩展单独拿出来讲一下呢?
因为当我们学习一门新的编程语言时,很多时候都会拿这门编程语言跟我们熟悉的编程做对比。因为编程语言的设计者不同,编程思想和理念是存在很多差别的,就算是同样相同的面向对象的编程语言,也会在细节上存在各种差异。
学习编程语言的过程都是相似的,先介绍语言基础类型、流程控制、函数格式等。编程的过程基本上就是流程的控制,判断状态,执行不同的逻辑,类、对象、方法是行为的封装。我们在刚接触编程会写很多 if-else、switch,为了减少 if-else 和 switch 的使用,会有继承、设计模式的应用。
CIL: Common Intermediate Language,通用中间语言
CLI: Common Language Infrastructure,通用语言基础结构
JIT: Just-in-Time compilation,即时编译
AOT: Ahead-of-Time,提前编译或静态编译
对 Unity 有一定的了解应该都知道 Unity 本身是不支持热更新的,但是在各种需求的驱使下,想要完全不用热更新几乎是不可能的,所以就诞生了很多热更新方案。有 tolua、xlua 这些成熟的 lua 解决方案,也有就是完全用 C# 实现的 ILRuntime 方案,因为热更新的代码也是用 C# 实现,没有 lua 的学习成本,现在 ILRuntime 的热更新方案越来越流行。
我们今天就着重介绍一下 ILRuntime 以及它的基本原理。
有段时间没看关于 iOS 的东西了,前段时间在翻 Instapaper 的时候看到了 [NSVALUE AND BOXED EXPRESSIONS][2] 这篇文章,就随便看了看,正好自己对这些也不是很了解,就记录下来。
在 Apple LLVM Compiler 4.0 支持嵌套表达式 (Boxed Expressions)。即可以用 @([NSNumber numberWithInt:1];
,@1 称为 NSNumber 字面量。ObjC 中还有集合字面量,以及通过下标来访问 OC 对象。下面介绍在 OC 中字面量的使用。
又是很久没有写博客了,所以再次写一篇来凑凑字数 😜,主要还是把自己最近刚知道的知识记录下来,方便以后来查看。
因为开始做游戏开发,所以就开始学习 Cocos 相关的内容。最近在几个地方踩了坑,虽然是很小的知识点,但是记录下来也算是记录成长的历程 😶😶。
有很长一段时间没有写博客了,前一段时间做毕设,写论文,改论文,答辩,拍毕业照... 很多很多不喜欢的事情,再加上那段时间沉不下心,就很少有机会去写博客了。
这周一刚进公司,开始做游戏,原来对游戏开发也不太了解,进公司这几天也一直都在学习各种东西,JS 语法,常见的 Cocos API 等等。今天在看 Cocos 的东西时,对 Cocos 的继承不是很了解,就去网上搜资料,在看 [John Resiq 的继承写法解析][1]的时候,对 apply
函数的用法不是很了解,于是又去查资料,这篇博客主要是记录自己对三个函数的理解,也让自己开始继续写博客。
事先可以看一下 [Comparison of Objective-C Enumeration Techniques][1] 和 [NSFastEnumeration / NSEnumerator][2],对比了 ObjC 中各种遍历方式。