据我所知,here实现Ada.Iterator_Interfaces的任何东西都可以使用Ada 2012 for循环语法 . “for ... [in | of] ... loop .. end loop;

如何创建一个通用子程序,我可以使用实现Ada.Iterator_Interfaces的包中的类型进行实例化?然后可以使用Ada 2012 for循环让该子程序迭代该类型 .

在Java中,这可能看起来像:

public String join(Iterable<String> collection) {
   for (item : collection){
     //do stuff
   } 
}

例如(尽管不是唯一的情况)一个经典的连接函数,它可以包含任何包含字符串的可迭代容器,并返回在字符串列表中连接在一起的所有字符串 . 例如 .

my_container = ["a","b","c"]
join(my_container) = "abc"

谢谢

马特