else guard ios
2019-02-14 16:01:43 baidu_30306909 阅读数 11

App:Robot Guard
Describe:
With the development of artificial intelligence, intelligent robots are manufactured in large numbers around the world, but human doom comes. . .

A virus has swept the entire field of intelligent robots, and robots began to have self-awareness and attempted to occupy the earth. . .

Human concentration of all resources has recreated the robot Robot Guard, which will not be infected. This is the last hope of mankind.

As the commander of Robot Guard, you must reasonably dispatch limited resources to defeat the rebellious robot! Come on, you can do it!

Email:pc14f5@yeah.net

TEl: +1-212-538-0482

2017-10-26 22:53:00 weixin_34132768 阅读数 16
1692043-5db5eddab2d293eb.png

背景

最近敲代码的时候对if else和if return有点纠结,因为这两种写法可以互换,最开始我是用的if else,后面看别人的代码很多用的if return,然后我也开始用if return,然而慢慢我感觉用if return好像有时还不如用if else来得更直观形象。于是我请教了一下老司机。

问题如下:

if else与if return的选择问题

这两种写法可以互换,如下:

if ([responseDict[@"result"] boolValue] == false) {
    [CQHud showToastWithMessage:responseDict[@"msg"]];
    return;
}

/// code

等效于:

if ([responseDict[@"result"] boolValue] == false) {
    [CQHud showToastWithMessage:responseDict[@"msg"]];
} else {
    /// code
}

在实际开发中我们如何做出选择?

得到的答案

1. 来自sunnie花儿的回答:
第一种吧,理由:看着舒服

点评:前端妹纸跨领域回答,值得关注。

2. 来自小风哥的回答:
第二种吧,它们是一对儿

点评:好好反思下为什么你会被卖黄片的盯上。

3. 来自馒头君的回答:
看下面代码的逻辑吧。。

如果你的 //code 只是在 else 里,一般说明这是 if 的另一种情况,写在里面比较好,合乎逻辑。

但是如果这个 if 只是个判断,遇 false 就return,不用走下面的逻辑,那么 写在外面比较好。

你看下以下代码:

if (xxx == nil) {
    NSLog(@"xxx must not is nil");
    return;
}
// code....

if (xxx) {
    NSLog(@"xxx not is nil");
    // code....
}else {
    NSLog(@"xxx is nil");
    // code....
}

点评:segmentfault里唯一一个正经回答,结合代码清晰阐释,毫无疑问他的是最佳答案。

4.来自bestswifter的回答:

1.和 if 中的代码无关(准确的说是我没理解为什么 if 代码对风格选择会有影响)
2.取决于 Code 是否完全能放进 else 里,这里默认可以。
3.建议第二种,if else 更强调一种非此即彼的关系,能够从代码层次上看出来两个逻辑是互斥的,写 return 则是另辟蹊径,得到了相同的效果,但是没有 if else 直观。
4.不要和 true/false 作比较,这是多余的。

点评:默默围观大神回答,不敢出声。。。

5.来自J_Knight_的回答:

如果这两组代码是互斥关系,建议使用if&else;如果是要首先排除某些特殊的错误情况,建议使用return。其实这不是倾向不倾向的问题,也与代码长短无关。写代码是要让读代码的人能尽可能快地理解你的意图。

点评:“写代码是要让读代码的人能尽可能快地理解你的意图”。 当你纠结时,不妨换位思考一下。

总结

到底如何选择,相信你已经有了答案。

2016-09-12 16:58:00 weixin_33877092 阅读数 61
1914217-f342c8c15f3df768.png
02F86B0F-C4CE-4946-AF32-F854761A8D23.png

如何减少if else的使用?

  • 在公司项目中常常看见很多if else让人很烦多的时候,会让你头疼。
  • 接下来说说我是如何解决这个问题的,说的不好的地方欢迎提意见
如何解决那么我们就要注意理解和对MVC的使用了
  • M 数据模型

  • V 界面

  • C 控制器
    太多的if else就是对数据模型这里不太熟悉了,我们可以先来学习一下模型( www.baidu.com )
    自己找吧,哈哈,说重点

  • 举例一个小程序就说pikerView吧
    (因为已经写好了)pikerView和tableView一样具有行和列这样的属性,我们要善用它,而不是
    if else干嘛干嘛的,这样也太麻烦了,简直是一种煎熬,一堆堆的if else想死的心都有了,如
    何有效的避免它呢?

  • 第一种方式(不是用模型而是直接用数组,适用于比较怕麻烦的人)
    贴代码,手抖:
    - (NSMutableArray *)titleNames
    {
    if (_titleNames == nil) {
    _titleNames = [NSMutableArray array];

               [self setUpTitleNames0];
               [self setUpTitleNames1];
               [self setUpTitleNames2];
          }
          return _titleNames;
      }
      - (void)setUpTitleNames0
      {
          [self.titleNames addObject:self.firstArray];
      }
      - (void)setUpTitleNames1
      {
          [self.titleNames addObject:self.secondArray];
      }
      - (void)setUpTitleNames2
      {
          [self.titleNames addObject:self.thridArray];
      }
    n 列
      - (NSInteger)numberOfComponentsIn
    PickerView:(UIPickerView *)pickerView
      {
          return  self.integer;
      }
      //row 行
      - (NSInteger)pickerView:(UIPickerView *)picker
    View  numberOfRowsInComponent:(NSInteger)component
      {
          
          return [self.titleNames[component] count];
      }
    
  • 是不是很简单,这样就完全不需要判断了
    我们通过一个可变数组用来存放东西,其他3个数组存放的需要选择的那一行的数据,一个可变的
    数组中有了3个数组,我们可以把它暂时看成有了3列数据,这样我们只需要取出当前对应的哪一
    列的数据自然就知道了当前多少行,以此类推下面pikerView的title这些只需要复制就行了然后
    取出row,就大功告成.

  • 第二种方法用模型 (这个方法适合于不怕麻烦,希望看起来代码简洁好看的那种,也有利于以后的修改 ,如果只是自己写,不妨用简易点的,没办法谁叫老板老催的急呢 ? 对吧 ! )

  • 这个我就用tableView来举例了哦,因为它比较好说

  • 贴代码:
    @property (nonatomic, strong) UIImage *image;

      @property (nonatomic, strong) NSString *title;
    
      + (instancetype)itemWithImage:(UIImage *)image
      title:(NSString *)title;//这个实现总会吧
    
  • 第二份代码
    @property (nonatomic, strong) NSArray *items;

      + (instancetype)groupWithItems:(NSArray *)items;
    
  • 控制器代码
    - (void)setUpGroup0
    {
    FDSettingItem *redeemCode = [FDSettingItem itemWithImage:[UIImage imageNamed:@"xxxxx"] title:@"我的剑就是你的贱"];

          // 当前组有多少行
          FDSettingGroup *group = [FDSettingGroup groupWithItems:@[redeemCode]];
    
          [self.groups addObject:group];
          
      }
      - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
      {
          return self.groups.count;
      }
    
      - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
      {
          FDSettingGroup *group = self.groups[section];
          
          return group.items.count;
      }
    
  • 搞定了,就这样

    • 可能写的不怎么好,不懂可以在这里问我 或者 私信

                            @"啦啦啦德玛西亚"
2017-10-28 10:59:32 qq_40201300 阅读数 333

背景

最近敲代码的时候对if else和if return有点纠结,因为这两种写法可以互换,最开始我是用的if else,后面看别人的代码很多用的if return,然后我也开始用if return,然而慢慢我感觉用if return好像有时还不如用if else来得更直观形象。于是我请教了一下老司机。

问题如下:

if else与if return的选择问题

这两种写法可以互换,如下:

1
2
3
4
5
6
if ([responseDict[@"result"] boolValue] == false) {
    [CQHud showToastWithMessage:responseDict[@"msg"]];
    return;
}
 
/// code

等效于:

1
2
3
4
5
if ([responseDict[@"result"] boolValue] == false) {
    [CQHud showToastWithMessage:responseDict[@"msg"]];
else {
    /// code
}

在实际开发中我们如何做出选择?

得到的答案

1. 来自sunnie花儿的回答:

第一种吧,理由:看着舒服

点评:前端妹纸跨领域回答,值得关注。

2. 来自小风哥的回答:

第二种吧,它们是一对儿

点评:好好反思下为什么你会被卖黄片的盯上。

3. 来自馒头君的回答:

看下面代码的逻辑吧。。

如果你的 //code 只是在 else 里,一般说明这是 if 的另一种情况,写在里面比较好,合乎逻辑。

但是如果这个 if 只是个判断,遇 false 就return,不用走下面的逻辑,那么 写在外面比较好。

你看下以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
if (xxx == nil) {
    NSLog(@"xxx must not is nil");
    return;
}
// code....
 
if (xxx) {
    NSLog(@"xxx not is nil");
    // code....
}else {
    NSLog(@"xxx is nil");
    // code....
}

点评:segmentfault里唯一一个正经回答,结合代码清晰阐释,毫无疑问他的是最佳答案。

4.来自bestswifter的回答:

1.和 if 中的代码无关(准确的说是我没理解为什么 if 代码对风格选择会有影响)

2.取决于 Code 是否完全能放进 else 里,这里默认可以。

3.建议第二种,if else 更强调一种非此即彼的关系,能够从代码层次上看出来两个逻辑是互斥的,写 return 则是另辟蹊径,得到了相同的效果,但是没有 if else 直观。

4.不要和 true/false 作比较,这是多余的。

点评:默默围观大神回答,不敢出声。。。

5.来自J_Knight_的回答:

如果这两组代码是互斥关系,建议使用if&else;如果是要首先排除某些特殊的错误情况,建议使用return。其实这不是倾向不倾向的问题,也与代码长短无关。写代码是要让读代码的人能尽可能快地理解你的意图。

点评:“写代码是要让读代码的人能尽可能快地理解你的意图”。 当你纠结时,不妨换位思考一下。

总结

到底如何选择,相信你已经有了答案


2017-10-28 11:00:00 weixin_34123613 阅读数 10

背景

最近敲代码的时候对if else和if return有点纠结,因为这两种写法可以互换,最开始我是用的if else,后面看别人的代码很多用的if return,然后我也开始用if return,然而慢慢我感觉用if return好像有时还不如用if else来得更直观形象。于是我请教了一下老司机。

问题如下:

if else与if return的选择问题

这两种写法可以互换,如下:

if([responseDict[@"result"] boolValue] ==false) {

[CQHud showToastWithMessage:responseDict[@"msg"]];

return;

}

/// code

等效于:

if([responseDict[@"result"] boolValue] ==false) {

[CQHud showToastWithMessage:responseDict[@"msg"]];

}else{

/// code

}

在实际开发中我们如何做出选择?

得到的答案

1. 来自sunnie花儿的回答:

第一种吧,理由:看着舒服

点评:前端妹纸跨领域回答,值得关注。

2. 来自小风哥的回答:

第二种吧,它们是一对儿

点评:好好反思下为什么你会被卖黄片的盯上。

3. 来自馒头君的回答:

看下面代码的逻辑吧。。

如果你的 //code 只是在 else 里,一般说明这是 if 的另一种情况,写在里面比较好,合乎逻辑。

但是如果这个 if 只是个判断,遇 false 就return,不用走下面的逻辑,那么 写在外面比较好。

你看下以下代码:

if(xxx == nil) {

NSLog(@"xxx must not is nil");

return;

}

// code....

if(xxx) {

NSLog(@"xxx not is nil");

// code....

}else{

NSLog(@"xxx is nil");

// code....

}

点评:segmentfault里唯一一个正经回答,结合代码清晰阐释,毫无疑问他的是最佳答案。

4.来自bestswifter的回答:

1.和 if 中的代码无关(准确的说是我没理解为什么 if 代码对风格选择会有影响)

2.取决于 Code 是否完全能放进 else 里,这里默认可以。

3.建议第二种,if else 更强调一种非此即彼的关系,能够从代码层次上看出来两个逻辑是互斥的,写 return 则是另辟蹊径,得到了相同的效果,但是没有 if else 直观。

4.不要和 true/false 作比较,这是多余的。

点评:默默围观大神回答,不敢出声。。。

5.来自J_Knight_的回答:

如果这两组代码是互斥关系,建议使用if&else;如果是要首先排除某些特殊的错误情况,建议使用return。其实这不是倾向不倾向的问题,也与代码长短无关。写代码是要让读代码的人能尽可能快地理解你的意图。

点评:“写代码是要让读代码的人能尽可能快地理解你的意图”。 当你纠结时,不妨换位思考一下。

总结

到底如何选择,相信你已经有了答案

Swift的Guard语句

博文 来自: iOSTianNan
没有更多推荐了,返回首页