doufeng3602 2015-01-16 14:48
浏览 42
已采纳

范围是`type x [] struct`还是`type y struct`?

It seems that there is no Ranger interface for ranging over custom types. Is there anything similar? Or do I have to make a method that converts the type to a slice or map?

Edit: of course I could cast x to []struct, but that would make it harder to change the underlying type of x.

  • 写回答

1条回答 默认 最新

  • dongsilu2237 2015-01-16 15:05
    关注

    The range variant of the for loop is not extendable to custom collections that are not just renamed slices, maps, strings, or channels. There is no Ranger interface or anything like that. If you want to range over a custom type, consider using a for-loop like this:

    for x, eof := col.Next(); x, eof = col.Next(); !eof {
        // ...
    }
    

    where Next() is a method that iterates through your collection with a signature like this:

    func (*MyCollection) Next() (ItemType x, bool eof)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)