首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >(参考文献;第[0.$2+1]节)

(参考文献;第[0.$2+1]节)
EN

Stack Overflow用户
提问于 2014-04-05 12:48:20
回答 2查看 71关注 0票数 1

这两个foreach循环将迭代哪些索引:

代码语言:javascript
运行
复制
struct Section{}
Section[] sections;

// assuming we have 10 sections
foreach(ref s; sections[0..$/2+1]) {
    // do something
}       

foreach_reverse(ref s; sections[$/2..$])
{
    // do something
}       
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-05 13:05:32

第一个将在0-sections.length/2+1=6上迭代(独占),第二个将迭代10-5

索引中的$引用数组的长度

array[a..b]表示法扩展为返回数组部分视图的array.opSlice(a,b)

票数 3
EN

Stack Overflow用户

发布于 2014-04-05 13:16:05

在D中,空结构的大小为1,其基本原理与C++中的相同:有关问题和基本原理,请参见here。因此,您的数组将包含虚拟1字节元素.

让我们检查一下这种行为:

代码语言:javascript
运行
复制
import std.stdio;

struct Section{}
Section[] sections = new Section [10];

void main () {
    foreach(ref s; sections[0..$/2+1]) {
        writeln (&s);
    }
}

对我来说,这些指纹:

代码语言:javascript
运行
复制
42208C
42208D
42208E
42208F
422090
422091

它们是内存中的连续地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22881098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档