美文网首页
From Objective-C to Ruby(1)-流程控制

From Objective-C to Ruby(1)-流程控制

作者: 求墨者 | 来源:发表于2018-08-25 18:00 被阅读6次

流程控制

判断

if···elsif···else···

OC:
NSInteger day = 5;

if (day==0) {
    NSLog(@"星期日");
}else if (day==6){
    NSLog(@"星期六");
}else {
    NSLog(@"工作日");
}
ruby:
day = 5

if day==0
    puts "星期日"
elsif day==6
    puts "星期六"
else
    puts "工作日"
end

三目运算符

OC:
NSInteger day = 5;
NSString * result = (day==6 || day==0) ? @"休息日" : @"工作日";
NSLog(@"%@", result);
ruby:
day = 5;
result = (day==6 || day==0) ? "休息日" : "工作日";
puts result

case ... when ...

OC:
NSInteger day=5;

switch (day) {
    case 1:
        NSLog(@"工作日-星期一");
        break;
    
    case 2:
        NSLog(@"工作日-星期二");
        break;
    
    case 3:
        NSLog(@"工作日-星期三");
        break;
        
    case 4:
        NSLog(@"工作日-星期四");
        break;
    
    case 5:
        NSLog(@"工作日-星期五");
        break;
    
    case 6:
        NSLog(@"休息日-星期六");
        break;
    
    case 0:
        NSLog(@"休息日-星期日");
        break;
        
    default:
        NSLog(@"未知");
    }
ruby:
day = 5

case day
when 1..5
    puts "工作日"
when 0
    puts "星期日"
when 6
    puts "星期六"
else
    puts "未知"
end

循环

while

OC:
NSInteger counter = 0;

while (counter < 5) {
    NSLog(@"hi, %ld", counter);
    counter += 1;
}
ruby:
counter = 0

while counter < 5
  puts "hi, #{counter}"
  counter += 1
end

for in

OC:
NSMutableArray * thoughts =  @[@"儒家", @"道家", @"墨家", @"法家"].mutableCopy;
for (NSString * thought in thoughts) {
    NSLog(@"%@", thought);
}
ruby:
thoughts = ["儒家", "道家", "墨家", "法家"]
for thought in thoughts
    puts thought
end

upto & downto

OC:
for (NSInteger i = 1; i <= 5 ; i++) {
    NSLog(@"hi, %ld", i);
}
/*
hi, 1
hi, 2
hi, 3
hi, 4
hi, 5
*/


for (NSInteger i = 5; i >= 1 ; i--) {
    NSLog(@"hi, %ld", i);
}
/*
hi, 5
hi, 4
hi, 3
hi, 2
hi, 1
*/
ruby:
1.upto(5) do |i|
  puts "hi, #{i}"
end

=begin
hi, 1
hi, 2
hi, 3
hi, 4
hi, 5
=end


5.downto(1) do |i|
  puts "hi, #{i}"
end

=begin
hi, 5
hi, 4
hi, 3
hi, 2
hi, 1
=end

iteration

OC:
NSMutableArray * thoughts =  @[@"儒家", @"道家", @"墨家", @"法家"].mutableCopy;
[thoughts enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
    NSString * thought = obj;
    NSLog(@"%@", thought);
}];
ruby:
thoughts = ["儒家", "道家", "墨家", "法家"]
thoughts.each do |thought|
    puts thought
end

参考资料:
railsbook


  • 持续更新。
  • 若有更好的资料,感谢交流。
  • 若有错误的内容,感谢斧正。

相关文章

网友评论

      本文标题:From Objective-C to Ruby(1)-流程控制

      本文链接:https://www.haomeiwen.com/subject/utvgiftx.html