如何在数据类型中声明具有固定大小的数组字段? 我正在创建一个名为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 -->```
答案 0 :(得分:7)
数组类型没有size参数。内存类型为Vector{Int8}
(或Array{Int8,1}
,Vector
只是一维数组的别名)。您可以使用内部构造函数来检查大小或抛出错误。
为了更加安全,您可以创建一个只有数组的新类型,并为length
,getindex
等定义调度,以便为它所拥有的数组创建一个数组接口,但是没有定义调整大小的方法。这可能是矫枉过正(如果你抓住数组的字段,你仍然可以调整它的大小)。
FixedSizeArrays或StaticArrays在这里不适用,因为数组太大(它们会大量增加编译时间)。