加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 枚举自定义:是否可以创建subEnum?

发布时间:2020-12-16 07:02:03 所属栏目:百科 来源:网络整理
导读:所以,这是代码: typedef enum{ zero,one,two,three,four,five,six,seven,eight,nine}Digits;typedef enum{ zero,nine }DigitsThatILikeToUse; 问题: ????如果我定义功能: void takeMyFavoriteDigits(DigitsThatILikeToUse favorite); (C)-|+(void) takeMy
所以,这是代码:

typedef enum{
    zero,one,two,three,four,five,six,seven,eight,nine
}Digits;

typedef enum{
    zero,nine 
}DigitsThatILikeToUse;

问题:
????如果我定义功能:

void takeMyFavoriteDigits(DigitsThatILikeToUse favorite); (C)

-|+(void) takeMyFavoriteDigits:(DigitsThatILikeToUse)favorite; (Objective-C)

我不能将它用于对基本枚举数字的反向引用,因为我在枚举DigitsThatILikeToUse中的顺序是不同的.

我的解决方案是写出这样的数字的明确位置:

typedef enum{
    zero = 0,one = 1,two = 2,nine = 9 
}DigitsThatILikeToUseInEdition;

但!我不能遍历这个新的枚举DigitsThatILikeToUseInEdition.

我想在枚举中创建一个subEnum并迭代它.可能吗?

我最好的想法是使用这样的东西:

typedef enum{
        beginIteratorDigitsThatILike,zero,nine,endIteratorDigitsThatILike,eight
    }Digits;

但也许有任何解决方案?

解决方法

(大多数情况下)没有通过添加更多级别的间接无法解决的问题:

typedef enum enumDigits {
  digitsNone = -1,digitsZero,digitsOne,digitsTwo,digitsThree,digitsFour,digitsFive,digitsSix,digitsSeven,digitsEight,digitsNine,digitsMax
} Digits_t;

typedef enum enumDigitsIndexIdLikeToUse {
  digitsIndexIdLikeToUseNone = -1,digitsIndexIdLikeToUseZero,digitsIndexIdLikeToUSEOne,digitsIndexIdLikeToUseTwo,digitsIndexIdLikeToUseThree,digitsIndexIdLikeToUseFour,digitsIndexIdLikeToUseMax
} DigitsIndexIdLikeToUse_t;

const Digits_t digitsIdLikeToUse[digitsIndexIdLikeToUseMax] = {
  digitsZero,digitsNine
}

假设你想使用至少1个didigt,你可以这样做:

Digits_t digitIdLikeToUse = digitNone;

...

for (DigitsIndexIdLikeToUse_t digitIndexIdLikeToUse = digitsIndexIdLikeToUseZero,digit = digitsIdLikeToUse[digitIndexIdLikeToUse];
  digitsIndexIdLikeToUse < digitsIndexIdLikeToUseMax;
  ++ digitsIndexIdLikeToUse)
{
  <do something with digitIdLikeToUse>
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读