具有数组字段的复合数据类型

时间:2016-09-13 20:21:00

标签: julia

如何在数据类型中声明具有固定大小的数组字段? 我正在创建一个名为CPU的复合数据类型。我知道你可以将字段的类型设置为数组类型,但是你可以实例化大小,还是需要制作一个显式的构造函数?

  <?php
  $args = array(
      'post_type' => 'state',
      'meta_key'  => 'state_name',
      'orderby' => 'meta_value',
      'order'   => 'ASC'
    );
    $the_query = new WP_Query( $args );

  ?>

  <?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

  <div class="state-name-header">
    <h2 id="<?php the_field( 'state_name' ); ?>"><?php the_field( 'state_name' ); ?></h2>

        <?php
        $state = get_field('state_name');
        $state_array = $state[0];
        $state_ID = $state_array->ID;

        $stores = get_posts(array(
          'post_type' => 'stores',
          'meta_query' => array(
            'relation' => 'AND',
            array(
              'key' => 'state_name',
              'value' => '"' . $state_ID . '"',
              'compare' => 'LIKE'
              )
            )
          ));
          ?>

          <?php if ( $stores ): ?>

            <div class="locations-container">

              <?php foreach( $stores as $store ): ?>
                <?php

                    $store_name = get_field( 'store_name' , $store->ID );
                    $store_address = get_field( 'street_address' , $store->ID );
                    $store_city = get_field( 'city' , $store->ID );
                    $store_state_abbr = get_field( 'state_abbreviation'  , $store->ID);
                    $store_zip = get_field( 'zip_code'  , $store->ID);
                    $store_phone = get_field( 'phone' , $store->ID );
                    $store_url = get_field( 'website' , $store->ID );
                ?>

                  <div class="store-location">
                    <h4 class="location-name"><?php echo $store_name; ?></h4>
                    <p><?php echo $store_address ?></p>
                    <p><?php echo $store_city ?></p>
                    <p><?php echo $store_state_abbr ?>, <?php echo $store_zip ?></p>
                    <p><?php echo $store_phone ?></p>
                    <a href="<?php echo $store_url ?>">website</a>
                  </div>

                <?php endforeach; ?>
            </div><!-- end locations-conatiner-->
          <?php endif; ?>
        </div><!-- end state-name-header -->
       <?php endwhile; endif; ?>
      </div><!-- end state-listings-container -->```

1 个答案:

答案 0 :(得分:7)

数组类型没有size参数。内存类型为Vector{Int8}(或Array{Int8,1}Vector只是一维数组的别名)。您可以使用内部构造函数来检查大小或抛出错误。

为了更加安全,您可以创建一个只有数组的新类型,并为lengthgetindex等定义调度,以便为它所拥有的数组创建一个数组接口,但是没有定义调整大小的方法。这可能是矫枉过正(如果你抓住数组的字段,你仍然可以调整它的大小)。

FixedSizeArrays或StaticArrays在这里不适用,因为数组太大(它们会大量增加编译时间)。