- 博客(54)
- 收藏
- 关注
原创 TypeScript 装饰器
随着TypeScript和ES6里引入了类,在一些场景下我们需要额外的特性来支持标注或修改类及其成员。装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,属性或参数上,可以修改类的行为。通俗的讲,装饰器就是一个方法,可以注入到类、方法、属性、参数上来扩展类、方法、属性、参数的功能。常见的装饰器有:普通装饰器(无法传参)、装饰器工厂(可传参)装饰器工厂如果我们要定制一个修饰器如何应用到一个声明上,我们得写一个装饰器工厂函数。装饰器工厂就是一个简单的函数,它返回一个表达式,以供装饰器在运行...
2021-07-06 15:23:05
310
原创 C++11 Lambda表达式(匿名函数)
C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问。Lambda表达式的语法通过下图来介绍: 这里假设我们定义了一个如上图的lambda表达式。现在来介绍途中标有编号的各个部分是什么意思。Lambda表达式的引入标志,在‘[]’里面可以填入‘=’或‘&’表示该lambda表达式“捕获”(lambda表达式在一定的scope可以访问的数据)的数据时以什么方式捕获的,‘&’表示一引用的方式;...
2021-06-19 16:21:30
232
转载 数组名和指针的深入理解(C++)
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。魔幻数组名请看程序(本文程序在WIN32平台下编译):#include <iostream>using namespace std;int main(){ char str[10]; char* pStr = str; cout << "sizeof(str): \t" << sizeof(str.
2021-06-04 19:31:59
997
1
原创 node.js中reduce的理解
reduce的api说明如下:翻译如下:1.个人理解:就是声明一个数组,数组里的每个元素都有指定的回调函数及等于声明了一系列回调函数,循环调用这些回调函数,且前后的回调函数之间拥有联系。2.参数说明:① 开始循环时previousValue为数组第一个元素,currentValue为数组第二个元素,currentIndex为currentValue值在数组中位置。initialValue:初始值。 ② 再次循环时,previousValue为回调...
2021-05-19 14:09:30
972
1
转载 再谈Promise
方法构造函数接受的参数是一个带两个Function参数的函数,实际的异步代码编写在这个函数里,成功后调用第一个参数,失败调用第二个;Promise.prototype.catch当构造函数里调用到失败的函数时,会执行该方法的参数,并传递错误信息;Promise.prototype.then当构造函数里调用到成功或者失败的函数时,会执行该方法的参数,并传递结果;Promise.all并行执行接受的数组,全部同时执行,直到全部都执行完毕,回调成功。Promise.race
2021-03-10 15:00:12
591
转载 ANR问题全解析
ANR问题全解析大部分做安卓的小伙伴相信对于ANR一定不陌生,相比于发生应用程序崩溃,发生ANR更加让人头大,主要原因是崩溃发生的时候会在Logcat中打印出发生异常的位置,开发人员很容易就能定位到崩溃并解决,显然ANR没那么轻松;但是我们大可不必这么忧伤,因为绝大部分ANR都是很容易解决的,只是我们没找到方法而已;首先要搞定ANR就要对他有一个根本性的认识,和我们了解任何事物一样,只有抓住了事物之根本,才能在应对各种各样复杂的场景时保持镇定,运筹帷幄;认识问题那什么是ANR呢?我总结过来说
2021-02-18 18:41:45
1386
转载 20分钟让你了解OpenGL——OpenGL全流程详细解读
导语:对于开发者来说,学习OpenGL或者其他图形API都不是一件容易的事情。即使是一些对OpenGL有一些经验的开发者,往往也未必对OpenGL有完整、全面的理解。市面上的OpenGL文章往往零碎不成体系,而教材又十分庞大、晦涩难懂还穿插着各种API的介绍。因此笔者希望通过多年的图形开发经验,结合对OpenGL的理解,对OpenGL整体的知识做一个梳理,剔除掉特别复杂又较少使用的部分。遗留下来常见和易于理解的部分,同时也尽量在介绍的时候兼顾易懂性和严谨性。希望对即将或正在学习OpenGL的开发
2021-01-31 09:45:24
9789
6
转载 lua的私有性(privacy)
很多人认为私有性是面向对象语言的应有的一部分。每个对象的状态应该是这个对象自己的事情。在一些面向对象的语言中,比如C++和Java你可以控制对象成员变量或者成员方法是否私有。其他一些语言比如Smalltalk中,所有的成员变量都是私有,所有的成员方法都是公有的。第一个面向对象语言Simula不提供任何保护成员机制。 如前面我们所看到的Lua中的主要对象设计不提供私有性访问机制。部分原因因为这是我们使用通用数据结构tables来表示对象的结果。但是这也反映了后来的Lua的设计思想。Lua没有打算被用来进
2021-01-27 16:40:18
828
1
转载 lua二进制操作函数
由于 Lua 脚本语言本身不支持对数字的二进制操作(例如 与,或,非 等操作),MUSHclient 为此提供了一套专门用于二进制操作的函数,它们都定义在一个“bit”表中,使用时只要requre “bit”即可。bit.ashr - 带符号的按位右移 此函数需要两个整数作为参数。第一个参数可以带有符号,是被以为的数,第二个参数是一个无符号整数,是向右移动的位数。在以为过程中,第一个参数的符合始终会被保留。 例如: print (bit.ashr (-1024, 6)) --...
2021-01-26 15:50:29
2252
转载 简单介绍一下类与类之间的六种关系
简单介绍类之间的关系有:依赖、泛化(继承)、实现、关联、聚合、组合我们在描述类之间的关系的时候,可以使用UML图UML即Unified modeling language(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 UML图分类 用例图(use case) 静态结构图:类图、对象图、包图、组件图、部署图 动态行为图:交互图(时序图与协作图)、状态图、活动图 类图是描述类与类之间的关系的,是UML图中最核心的 UML
2020-11-25 18:15:11
2250
转载 C/C++ 虚函数
虚(virtual)函数是为了实现多态,派生类可以覆写(override)基类的虚函数。1、多态(polymorphism),即基类指针或者引用,可能指向基类对象,也可能指向派生类对象,会根据运行时具体指向的对象,来调用不同的函数。2、如果没有多态,则什么类型的指针或者引用,就会调用什么类型的对象的函数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2020-10-26 11:25:23
155
转载 Lua中的loadfile、dofile、require详解
这篇文章主要介绍了Lua中的loadfile、dofile、require详解,本文分别用实例讲解它的用法和特点等内容,需要的朋友可以参考下本来今天不应该讨论这几个函数的,不过,为了凑字数..不,为了方便以后的文章,还是要谈谈这几个基础函数的~1.loadfile——只编译,不运行loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。比如,我们有一个hellofile.lua文件:复制代码代码如下:print(“hello”);function hehe(...
2020-09-30 18:23:12
2808
1
转载 Lua 闭包
词法定界:当一个函数内嵌套另一个函数的时候,内函数可以访问外部函数的局部变量,这种特征叫做词法定界 table.sort(names,functin (n1,n2) return grades[n1]>grades[n2] end) //内部匿名函数可以访问外部函数的n1,n2第一类值:lua当中函数是一个值,他可以存在变量中,可以作为函数参数,可以作为返回值 function test() local i=0
2020-09-30 14:59:50
98
原创 cocos2dx-lua 模拟器设置及启动方式
1.设置F5刷新窗口和log显示窗口frameworks/runtime-src/proj.win32/SimulatorWin.cpp 把 #define SIMULATOR_WITH_CONSOLE_AND_MENU 0 改成 12.运行脚本@echo offstart .\simulator\win32\studyCocos.exe -workdir .\ -writable-path .\simulator\win32 -resolution 1136x640 -write-d.
2020-09-29 16:21:32
585
原创 突破 Label 的缓存模式:CHAR 无限模式
引擎中关于 Label 的缓存模式的描述Label 组件目前提供三种 Cache Mode:NONE、BITMAP、CHAR。NONE:即 Label 的整个文本内容会进行一次绘制,并进行提交,但是并不参与动态合图。BITMAP:即 Label 的整个文本内容会进行一次绘制,并加入到动态图集中,以便进行批次合并。CHAR:即 Label 会将文本内容进行拆分,然后对单个字符进行绘制,并将字符缓存到一张单独的字符图集中,下次遇到相同字符不再重新绘制。三者的主要...
2020-09-11 18:23:58
1486
1
原创 cocos lua 动画详解
注:笔者不把一大段代码贴出来,分段解释比较舒服一点MoveBy:通过修改节点对象的位置属性来改变节点对象的x,y像素。 x,y的坐标是相对于这个对象的位置来说的。 几个MoveBy动作可以同时被调用,最终的运动是这几个单独运动的综合MoveTo:移动节点对象到位置x,y。x,y是绝对坐标,通过修改它的位置属性来改变它们的值。 几个MoveTo动作可以被同时调用,并且最终的运动是几个单独运动的综合。[javascript]view plaincopy----------------..
2020-08-12 14:21:44
1426
原创 单链表和双链表的删除和插入的时间复杂度分析
单链表和双链表的删除和插入的时间复杂度分析 单向链表要删除某一节点时,必须要先通过遍历的方式找到前驱节点(开发中大致分为两种删除方式:1.通过待删除节点序号2.按值查找)。若仅仅知道待删除节点,是不能知道前驱节点的,故单链表的增删操作复杂度为O(n)。 双链表(双向链表)知道要删除某一节点p时,获取其前驱节点q的方式为 q = p->prior,不必再进行遍历。故时间复杂度为O(1)。而若只知道待删除节点的序号,则依然要按序查找,时间复杂度仍为O(n)。 单、双链表的插入操作
2020-08-11 09:36:24
7850
1
转载 深入理解lua协程
我们首先介绍一下什么是协程、然后详细介绍一下coroutine库,然后介绍一下协程的简单用法,最后介绍一下协程的复杂用法。一、协程是什么? (1)线程 首先复习一下多线程。我们都知道线程——Thread。每一个线程都代表一个执行序列。 当我们在程序中创建多线程的时候,看起来,同一时刻多个线程是同时执行的,不过实质上多个线程是并发的,因为只有一个CPU,所以实质上同一个时刻只有一个线程在执行。 在一个时间片内执行哪个线程是不确定的,我们可以控制线程的优先级,不过真正的线程调度由CP
2020-07-24 09:24:17
978
翻译 #define用法,C语言#define详解
C语言中,可以用 #define 定义一个标识符来表示一个常量。其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。预编译又叫预处理。预编译不是编译,而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。用 #define 定义标识符的一般形式为:#define 标识符 常量 //注意, 最后没有分号#define 和 #include 一样,也是以“#”开头的。凡是以“#”开头的均为预处理指令,#define也不例外。#define又称宏定义,标识符...
2020-07-19 10:15:28
3551
转载 编写更高效的 lua 代码(转载)
编写更高效的 lua 代码转自 :https://wuzhiwei.net/lua_performance/我们不能靠臆想和凭空猜测来决定优化哪个部分,代码的运行效率必须是可测量的。我们需要借助于分析器来测定性能的瓶颈,然后着手优化。优化后,我们仍然要借助于分析器来测量所做的优化是否真的有效。我认为最好的方式是在首次编写的时候按照最佳实践去写出高性能的代码,而不是编写了一堆垃圾代码后,再考虑优化。相信工作后大家都会对事后的优化的繁琐都深有体会。使用local在代码运行前,Lua会把源码.
2020-07-19 09:19:40
275
转载 lua之基本函数
在大多数Lua语法分析中可以获得这些标准Lua函数. 无可争辩, 我们可以查阅Lua网站, 但是一些少了的函数被Blizzard进行了调整. 下面列出了所有Lua函数. WoW API中的Lua注意在WoWAPI没有提供所有标准的Lua函数, 很显然, 操作系统以及文件I/O库是不支持的 Lua函数这些函数都是Lua编程语言的一部分, 点击这里了解更多. •assert
2017-04-14 15:28:23
269
1
原创 Java for循环的几种用法分析
本篇文章小编为大家介绍,Java for循环的几种用法分析。需要的朋友参考下J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或C
2017-02-15 15:58:04
288
原创 Java对象及对象引用变量?
Java对象及其引用关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们
2016-12-10 18:45:45
523
原创 Java中hashCode和equals的区别
以下是关于HashCode的官方文档定义:[plain] view plain copyhashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。 hashCode 的常规协定是: 在 Java 应用程序执行期间,在同一对象上多次调用 has
2016-12-10 17:07:53
215
转载 HashMap实现原理分析
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离
2016-12-10 16:48:02
194
转载 为什么java静态方法不能调用普通方法?普通方法能调用静态方法?
因为该类的静态方法是程序启动时自动放在内存中了的,是属于程序的公共内存(但只能访问),而类名在这里你可以理解为命名空间。先通俗的分析下,我们把类看作是一个房子。房子里面有家具,桌椅板凳之类的,房子里面还有人。房子里面所有的人都应该是共有一套家具的。也就是说,这些家具是唯一的,如果某个家具坏了,那么大家都用不了。我们再看一看定义,java的静态变量也叫做类变量,它开始于类的创建,结束于类的消亡。
2016-12-10 16:23:09
3206
1
转载 ArrayList和LinkedList的用法区别
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 这一点要看实际情况的。若只对单条数据插入或删除,ArrayLi
2016-12-08 18:52:34
254
转载 Android 编程下 Touch 事件的分发和消费机制
Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup 及其子类、Activity。方法与控件的对应关系如下表所示:Tou
2016-11-11 15:05:21
153
转载 中国这10家慕课网站,您需要知道!
A man can succeed at almost anything for which he was unlimited enthusiasm. 只要有无限的热情,一个人几乎可以在任何事情上取得成功。 MOOC即Massive Open Online Course的缩写,翻译成中文就是:大规模的在线开放课程或者大型开放式网络课程,是任何人都可以注册使用的在线教育新模式,被
2016-08-25 17:08:44
494
转载 新手必备的常用 Android 代码片段整理
新手必备的常用 Android 代码片段整理2016-01-20 安卓应用频道(点击上方公众号,可快速关注)来源:赵凯强(@裸奔的凯子哥)链接:http://blog.csdn.net/zhaokaiqiang1992/article/details/44724057以下内容来自多个开源项目的整理和自己的项目积累。
2016-08-25 16:51:57
234
转载 android 6.0 sd卡读取文件失败
最近在项目里做适配的时候,发现6.0sd卡读取文件的时候出现空指针问题。调试后发现,读取文件失败,logcat提示权限未设置。在检查了多次AndroidMainfest.xml文件之后,确定不是清单文件的问题,不是权限申请的问题。而且只有在6.0的系统才出现,其他的都很OK。查询了诸多资料,才发现6.0系统改版,加强了权限的控制,原来写在清单文件中的权限,仅仅是向用户申请权限(6.
2016-08-17 21:27:38
838
转载 ListView优化机制及滑动时数据时出现的数据错乱重复问题
该篇内容主要是记录我在实际开发中遇到的ListView滑动时数据错乱的几种情况,以及解决方法。在进行ListView滑动时数据错乱问题讨论之前会对ListView所谓的进行说明。文章末尾分享了几篇文章,增强对ListView使用以及Adapter优化的理解,其中有对adapter优化方法的耗时测试的介绍。Getting Start遇到过的ListView在滑动时数据错乱的几种情况:
2016-08-07 18:33:58
1661
转载 Android DrawableAnimation逐帧动画加载多图(OOM的解决)
想做一个逐帧动画,用了一百来张图片,结果内存溢出了,找了半天最后算是解决了。本来是在drawable里面写一个animation-list,设置ImageView的backgroud,然后在Activity里面[java] view plain copyanimationDrawable = (AnimationDrawable)mI
2016-07-21 21:20:09
3548
转载 使用ViewPager实现帖子列表
今天要提取的效果是,使用ViewPager简单实现帖子列表的功能。看起来还是比较炫酷的。。。但是使用的是v4包中的ViewPager啦。整体功能效果就是利用ViewPager左右拖动的效果,在头部使用RadioGroup单选框进行页面的区分。主页面整体使用FrameLayout,因为要由一个悬浮图标发表帖子。大概的需求还有搜索框的隐藏还有显示,要求无论在哪个页面,要跳回全部的页面下进行搜索。效果还
2016-07-14 14:41:00
585
原创 Android端与Java服务端交互——SocketIO
直接开始进入正题:先来服务端程序爽一把,话不多说,先上代码:public class ServerSocketIOForAndroid { public static void main(String[] args) { / * 创建Socket,并设置监听端口 */ Configuration config
2016-07-06 15:19:22
3214
转载 Android spannableStringBuilder用法整理
spannableStringBuilder 用法详解: SpannableString ss = new SpannableString("红色打电话斜体删除线绿色下划线图片:."); //用颜色标记文本 ss.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,
2016-07-06 13:35:15
313
转载 Android 平滑图片加载和缓存库 Glide 使用详解
Android 平滑图片加载和缓存库 Glide 使用详解图片AndroidAndroid开发者 · 2015-08-28 22:31小编有话说在图片加载库烂大街的今天,选择一个适合自己使用的图片加载库已经成为了每一个Android开发者的必经之路。现在市面上知名的图片加载库有UIL,Picasso,Volley ImageLoade
2016-07-05 21:40:30
320
转载 Popupwindow的使用
项目中经常会使用到popupwindow做菜单选项,这个类在使用中有一些经常被遗忘的细节,今天用一个实例来总结一个popupwindow较常用的用法。 效果图: MainActivity.java:Java代码 public class MainActivity extends Activity {
2016-06-29 18:43:13
213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人