【IOS沉思录】Objective

阅读: 评论:0

【IOS沉思录】Objective

【IOS沉思录】Objective

糖衣语法的定义

糖衣语法,又叫‘语法糖’、‘语法盐’等等,是由英国计算机科学家彼得·约翰·兰达(Peter J.Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

糖衣语法在各种语言中都又出现,最常用的就是数组的[ ]操作符的下标访问以及{ }操作符对数组的初始化,例如C语言中可以通过下标访问数组元素,这种类似[ ]和{ }操作符的符合程序员思维的简单表示方法就是所谓的糖衣语法了:

// C中的数组操作
int a[3] = {1,2,3};
int b = a[2];

事实上[ ]和{ }在JSON数据格式中最常见了,[ ]一般封装一个数组,{ }一般封装一个整体对象;

OC中的糖衣语法

糖衣语法在OC中又常叫做‘字面量’,主要用在NSString,NSNumber,NSArray,NSDictionary这些类中,使用字面量可以更清晰的看清数据的结构,而且大大减小了代码编写的复杂繁琐度,代码易读性更高。

OC中字面量的用法主要由以下几种情况,包括基本数据类型NSNumber、静态数组NSArray和字典NSDictionary、可变数组NSMultableArray和字典NSMultableDictionary。其中静态的数组和字典不能直接用[ ]操作符来通过下标访问元素或者通过键值访问元素,而可变长数组和字典可以;另外可变长数组和字典用字面量初始化时要进行multableCopy操作。

糖衣语法用法:

/*** 糖衣语法【注意变量中不可出现nil!】  ***/// 1.基本数据对象NSNumber *num_int = @1;NSNumber *num_float = @1.1f;NSNumber *num_bool = @YES;NSNumber *num_char = @'a';// 类似还有:NSInteger, Double, Long, Short ...// 基本数据运算int operator_i = 3;float operator_f = 2.1f;NSNumber *expression = @(operator_i * operator_f);// 2.静态数组、字典NSArray *array = @[@1, @2, @3];NSDictionary *dic = @{@"KEY":@"VALUE",@"KEY1":@"VALUE1"};// 访问但不可更新NSNumber *num = array[1];NSString *string = dic[@"KEY"];// 3.可变数组、字典NSMutableArray *mulArray = [@[@"a", @"b", @"c"] mutableCopy];NSMutableDictionary *mulDic = [@{@"key": @"value",@"key1": @"value1"} mutableCopy];// 可变数组元素的下标访问或键值访问以及元素更新NSString *mulstring = mulArray[1];mulArray[1] = @"d";NSString *dicstring = mulDic[@"key"];mulDic[@"key"] = @"value3";

原用法:

/*** 对应的原语法【变量中可以出现nil,数组中出现的nil会被过滤掉】 ***/// 1.基本数据对象NSNumber *num_int = [NSNumber numberWithInt:1];NSNumber *num_float = [NSNumber numberWithFloat:1.1f];NSNumber *num_bool = [NSNumber numberWithBool:YES];NSNumber *num_char = [NSNumber numberWithChar:'a'];// 类似还有:NSInteger, Double, Long, Short ...// 2.静态数组、字典NSArray *array = [[NSArray alloc]initWithObjects:@1, @2, @3, nil];NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"VALUE", @"KEY",@"VALUE1", @"KEY1", nil];// 访问(静态数组元素不可更新)NSNumber *num = [array objectAtIndex:1];NSString *string = [dic objectForKey:@"KEY"];// 3.可变数组、字典NSMutableArray *mulArray = [[NSMutableArray alloc]initWithObjects:@"a", @"b", @"c", nil];NSMutableDictionary *mulDic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"value", @"key",@"value1", @"key1", nil];// 访问和更新NSNumber *mulnum = [mulArray objectAtIndex:1];[mulArray setObject:@"d" atIndexedSubscript:1];NSString *mulstring = [mulDic objectForKey:@"KEY"];[mulDic setObject:@"value2" forKey:@"key"];

本文发布于:2024-01-27 23:15:51,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063685543239.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:沉思   IOS   Objective
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23