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 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
  • ¥50 vue router 动态路由问题
  • ¥15 关于#.net#的问题:End Function
  • ¥15 无法import pycausal
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义