object_c字符串比较之:版本号

在开发当中,经常会比较软件的版本号,比如1.0.0.1与1.0.1。方法有很多,你可以一个一个解析出来,比较数值。其实有一种NSString的内置比较方法,只不过带了比较选择项,多一个参数而已。下面的源码扩展了系统的NSString功能,术语叫:category。

 

 

 

工程源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 建议添加类型注解,使代码更加可读和可维护。 2. `add_user_cache` 和 `del_user_cache` 方法返回值可以直接使用 `redis_client.hmset` 和 `redis_client.delete` 方法的返回值,不需要返回 `True`。 3. `get_user_cache` 方法中应该对 `user_cache_dict.get('permissions')` 的返回值进行判断,如果返回 None,应该设置一个默认值,而不是直接使用 `split` 方法。 4. 在 `get_user_cache` 方法中,可以使用字典推导式对 `UserCache` 对象的属性进行赋值,代码更加简洁。 下面是优化后的代码: ``` class UserCache(UserMixin): """用户表缓存""" userid: str username: str alternative_id: str homepage: str permissions: list[str] def get_id(self) -> str: """使用替代用户ID,当账号信息发生变化时,替代ID更改为新的随机生成的值,确保他们的旧身份验证会话不再有效。""" return self.alternative_id @staticmethod def add_user_cache(alternative_id: str, **kwargs) -> bool: """添加user缓存""" user_key = f"{PROJECT_NAME}-{alternative_id}" values = {"alternative_id": alternative_id, **kwargs} return redis_client.hmset(user_key, values) == len(values) @staticmethod def del_user_cache(alternative_id: str) -> bool: """删除user缓存""" return redis_client.delete(f"{PROJECT_NAME}-{alternative_id}") @staticmethod def get_user_cache(alternative_id: str) -> "UserCache": """获取user缓存""" user_cache_dict = redis_client.hgetall(f"{PROJECT_NAME}-{alternative_id}") if user_cache_dict: permissions = user_cache_dict.get('permissions', '').split(",") return UserCache( userid=user_cache_dict.get('userid'), username=user_cache_dict.get('username'), alternative_id=user_cache_dict.get('alternative_id'), homepage=user_cache_dict.get('homepage'), permissions=permissions if permissions != [''] else [] ) ``` 注意,为了使代码更加简洁,我使用了 Python 3.9 的新特性——字典合并操作符 `**`。如果你使用的是 Python 3.8 或更早版本,可以将 `values` 和 `kwargs` 合并的方式改为 `values.update(kwargs)`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值