前言:什么是ARTS?
ARTS 源于耗子叔在极客时间的专栏《左耳听风》打卡活动。
Algorithm:每周至少做一个 Leetcode 的算法题。主要是为了编程训练和学习。
Review:阅读并点评至少一篇英文技术文章。主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。
Tip:学习至少一个技术技巧。主要是为了总结和归纳你在日常工作中所遇到的知识点。
Share:分享一篇有观点和思考的技术文章。主要是为了建立你的影响力,能够输出价值观。
Algorithm
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
示例 2:
示例 3:
示例 4:
示例 5:
Python 3 代码:
|
Review
MessageMock : 优雅的模拟 Objective-C 方法
开源地址:MessageMock
在代码测试中,对于一些不容易获取的对象,可以虚拟(mock)出一个对象来帮助完成测试。在 iOS 中,已经有 OCMock 这样比较有名的开源框架去解决这个问题。但是 OCMock 在使用上的问题是比较繁琐麻烦,测试一个小的功能可能在使用上也比较麻烦。本文为这种场景提供了一种新的思路,基于 objc_msgSend
来进行方法的“模拟”和“校验”。
MessageMock 通过任意[target selector]
调用命中目标方法:
- 修改目标方法返回值、参数
- 验证目标方法返回值、参数
- 跳过目标方法调用
- 获取目标方法命中次数
Tip
一个可以自己部署的服务,生成个人 GitHub 账户的统计,可以插在自述文件里面。如图所示,你还可以自定义卡片样式和内容。
Share
本文通过一个简单的例子,一步步演示 SHA-256 算法,如何将字符串变成一个256位的哈希值。