自制计算器——《自制编程语言》二

2021-04-07
阅读 9 分钟
2.2k
前面介绍了借助yacc和lex自制计算器。《自制计算器(借助yacc和lex)—《自制编程语言》一》本文介绍下不用yacc和lex的实现过程,其实就是自己编写词法解析器和词法分析器来代替yacc和lex。基于C语言实现文中代码为了说明大多是截图,可以对照行号介绍,不过不用担心,源代码我都传到这里了

自制计算器(借助yacc和lex)——《自制编程语言》一

2021-03-25
阅读 11 分钟
5k
《自制编程语言》学习记录,内容基本是摘抄原书其实原书并不是从头讲怎么写一个计算器的,而是上来就给了代码,对着代码讲解。计算器代码的名字为mycalc,内部完全使用double进行运算。本篇文章演示代码

正则表达式小记

2021-03-24
阅读 1 分钟
1.3k
看《自制编程语言》中对正则有一个简单的介绍,现记录一下。如下一个正则表达式 {代码...} [与]表示匹配此范围内的任意字符。支持使用连接符的缩写。比如[1-9]与[123456789]是完全一样的。最前面的圆括号的[1-9]代表匹配1~9中的任意一个数字,其后的[0-9]代表匹配0~9中的任意一个数字。之后的*,代表匹配前面的字符*0次...

类方法load和initialize的区别

2018-09-29
阅读 3 分钟
2.9k
Objective-C作为一门面向对象语言,有类和对象的概念。编译后,类相关的数据结构会保留在目标文件中,在运行时得到解析和使用。在应用程序运行起来的时候,类的信息会有加载和初始化过程。就像Application有生命周期回调方法一样,在Objective-C的类被加载和初始化的时候,也可以收到方法回调,可以在适当的情况下做一些...

ARKit上手 添加3D物体

2018-09-29
阅读 3 分钟
4k
之后,填写完项目信息后,选择Content Technology为SceneKit,当然也可以选择SpriteKit,不过在3D空间中就不是那么立体了。开发语言选择Swift,Swift天然亲和ARKit,很多网上的Demo都是用Swift写的,这样也方便移植和借鉴。

视觉效果 -- iOS Core Animation 系列三

2018-09-20
阅读 7 分钟
3.2k
CALayer有一个conrnerRadius的属性控制图层的圆角曲率,默认值为0。这个曲率值默认只影响背景颜色而不影响背景图片或者子图层。可以用过下面的示例看一下。

图层几何学 -- iOS Core Animation 系列二

2018-09-15
阅读 5 分钟
2k
《图层树和寄宿图 -- iOS Core Animation 系列一》介绍了图层的基础知识和一些属性方法。这篇主要内容是学习下图层在父图层上怎么控制位置和尺寸的。 1.布局 首先看一张例图: 对于图上的frame、bounds、center、postion的概念我就不赘述了。如果有不明白的自行搜索下了解一下。 frame代表了图层的外部坐标(也就是在父...

图层树和寄宿图 -- iOS Core Animation 系列一

2018-09-14
阅读 7 分钟
3k
一个视图就是在屏幕上显示的一个矩形块(比如图片,文字或者视频),它能够拦截类似于鼠标点击或者触摸手势等用户输入。视图在层级关系中可以互相嵌套,一个视图可以管理它的所有子视图的位置。在iOS中,所有的视图都是从UIView这个基类派生出来的。UIView可以处理触摸时间,支持Core Graphics绘图,可以仿射变换等等操作。

Python文件读写保存操作

2018-09-13
阅读 3 分钟
6.7k
{代码...} 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之后,下面开始动手写代码,代码很简单。就直接上全部的,细节看注释: {代码...} 以上代码就完成了需求,非常简单。有几个注意点: 直接用open获取的数据无法进行处理,所以先转成可以处理的数据,比如lis...

Pycharm 项目运行错误问题整理

2018-09-11
阅读 1 分钟
25.2k
意思缺少 matplotlib库, 可以点击Python -> preference -> Project Interpreter

didReceiveMemoryWarning iOS开发

2018-09-11
阅读 2 分钟
3.2k
iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。

iOS开发音频格式转换

2018-09-10
阅读 1 分钟
4.8k
ios的录音格式默认的为wav。但是这个格式安卓无法读取,最开始是转成了MP3。测试没什么问题,但是老板说mp3的数据占用比较大,常规的用法是amr。测试了下,确实amr文件只有MP3的十分之一左右。格式转换用的是VoiceConvert,网上有很多。如有需要自己找下。我只记录下安卓和ios互通的坑。

Container ViewController自定义转场控制器。

2018-08-19
阅读 4 分钟
1.5k
最近接触到新公司的老项目改版。自从来了之后一直在忙另一个项目,也没有看老项目的实现逻辑。看到设计稿的时候,并不是普通的树形标签导航的样子。大致效果如FaceU的主页:

Mac端Wireshark抓包工具使用扩展

2018-08-14
阅读 3 分钟
3.2k
一般常规的网络请求对包的大小是有限制的,即MTU"最大传输单元",大多数网络的MTU是1500字节,也有一些特例的巨帧达到9000字节。假如现在有一个8000字节的数据包进入网络,如果是巨帧网络,数据可以传输成功,但是如果进入到1500字节的网络中,就会被丢弃或者切分。重传还是会被丢弃,无法传输成功。

Mac端Wireshark抓包工具使用

2018-08-13
阅读 2 分钟
21.5k
最近换了新公司,新项目用的socket做网络请求,工作几年,终于见到HTTP的协议用途。可能之前待的都是小公司吧。最近为了学习,安装使用了Wireshark.安装过程中也有一些小坑。做一个记录。

Swift算法俱乐部:Swift队列数据结构(Queue)

2018-06-08
阅读 3 分钟
4.3k
队列(Queue)是一个列表,您只能在后面插入新项目并从前面删除项目。 这可确保入队的第一个元素也是首先出队的元素。 先到先出在许多算法中,我们希望在某个时间点将项目添加到临时列表中,然后在以后再次将它们从列表中拉出。 添加和删除这些项目的顺序非常重要。

Swift算法俱乐部:Swift栈(Stack)数据结构

2018-06-07
阅读 4 分钟
6.2k
堆栈(Stack)就像数组,但功能有限。堆栈提供LIFO或后进先出。 最后推进的元素是即将被推出的第一个元素。 (非常类似的数据结构,队列是FIFO,或先进先出。)

UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

2018-04-27
阅读 9 分钟
1.8k
翻译自raywenderlich网站iOS教程Graphics & Animation系列介绍UIKit Dynamics是一个集成到UIKit中的完整物理引擎。它允许您通过添加诸如重力,附件(弹簧)和力量等行为来创建感觉真实的界面。您定义了您希望界面元素采用的物理特征,动态引擎负责其余部分。

UIKit Dynamics:抛出视图 —《Graphics & Animation系列三》

2018-04-27
阅读 6 分钟
2.4k
翻译自raywenderlich网站iOS教程Graphics & Animation系列 准备开始 首先用storyboard布局一个页面(或者你可以用纯代码去设置),效果如下: 在文件中声明和拖拽出如下参数:(blueSquare、redSquare、imgView是storyboard拖出的) {代码...} 红色和蓝色方块表示让图片做动画的UIKit动态物理引擎点:蓝色方块表示触...

<Solidity学习系列四>使用编译器

2018-03-26
阅读 9 分钟
3k
Solidity存储库的一个构建目标是solc,solidity命令行编译器。 使用solc --help为您提供所有选项的解释。 编译器可以生成各种输出,范围从简单的二进制文件和汇编到抽象语法树(解析树),以估计gas使用情况。 如果您只想编译单个文件,则将其作为solc --bin sourceFile.sol运行,并打印二进制文件。 在部署合同之前,在...

<Solidity学习系列三>安全考量

2018-03-26
阅读 5 分钟
2.9k
在Solidity中,这更加重要,因为您可以使用智能合约来处理令牌(tokens)或可能更有价值的东西。此外,智能合约的每一次执行都在公开场合进行,除此之外,源代码通常是可用的。

<Solidity学习系列二>深入理解Solidity之二---Solidity源代码文件结构

2018-03-23
阅读 3 分钟
2.3k
版本Pragma源文件可以(也应该)用所谓的版本注释来注释,以拒绝被编译为未来可能引入不兼容更改的编译器版本。 我们试图将这种变化保持在绝对最低限度,特别是引入变化的方式是语义的变化也需要语法的变化,但这当然不总是可能的。 因此,至少对于包含重大更改的版本,通读更新日志总是一个好主意,这些版本始终具有0.x...

<Solidity学习系列一>根据例子学习Solidity

2018-03-23
阅读 9 分钟
3.1k
声明:本系列文章是自己在[链接] 学习solidity时,因为英语水平不够,被迫用谷歌粗略翻译的。仅为了方便学习,中间肯定有很多错误的地方。请勘误。