• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

python - Objective-c 中是否存在类似 Python 生成器的东西?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:07:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

类似 Python generator存在于objective-c中?

我在几个地方都有以下代码,有什么方法可以简化它吗?

int maxWinInRow = [self maxWinInRow];

// how many wins in row
for (int i=1; i <= maxWinInRow; i++) {

    NSString * key = [NSString stringWithFormat"%d",i];
    NSNumber * value = [_winsInRow valueForKey:key ];
    int numbeOfWinInRow = value.intValue;


    // only this line is specific
    gameScore = gameScore + ( pow(6,i) * numbeOfWinInRow);
}



Best Answer-推荐答案


具体来说,Objective C 编程语言中没有内置这样的生成器模式。然而,随着在 Objective C(以及带有 LLVM 的 C)中引入“ block ”,在 Objective C 中构建自己的生成器模式变得有些可能。

如果你认真学习这个,可以去this article迈克·阿什(Mike Ash)。

但是,在使用 block 时请小心,因为它偶尔会产生额外的内存管理开销,否则可能会导致您的应用程序中潜在的内存泄漏。因此,如果您想使用所描述的模式,请确保您对“ block ”有正确的理解。否则,我总是建议您重构代码以构建一个基本方法,该方法可以用作 Wain 所描述的 stub 。当然,这不会允许模式所暗示的延迟初始化。但是,在 Objective C 中,这总比没有好。

关于python - Objective-c 中是否存在类似 Python 生成器的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837328/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap