iOS Swift 基础四
来源:互联网 发布:天神互动怎么样 知乎 编辑:程序博客网 时间:2024/06/05 17:08
1.字典
/*
字典定义: 键值对
OC:
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"lnj" forKey:@"name"];
NSLog(@"%@", dict);
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];
NSLog(@"%@", dict);
NSDictionary *dict = @{@"name":@"lnj", @"age":@30};
NSLog(@"%@", dict);
*/
// key一定要是可以hash的(String, Int, Float, Double, Bool), value没有要求
var dict = ["name":"lnj", "age":30]
print(dict)
var dict1:Dictionary = ["name":"lnj", "age":30]
print(dict1)
var dict2:Dictionary<String,Any> = ["name":"lnj", "age":30]
print(dict2)
var dict3:[String:Any] = ["name":"lnj", "age":30]
print(dict3)
var dict4:[String:Any] = Dictionary(dictionaryLiteral: ("name", "lnj"), ("age", 30))
print(dict4)
//不可变数组:
var dict5 = [:]
//可变数组:
let dict6 = [:]
/*
字典操作
OC:
1.获取
NSDictionary *dict = @{@"name":@"lnj", @"age":@30};
NSLog(@"%@", dict[@"name"]);
2.修改
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];
dict[@"name"] = @"iversion";
NSLog(@"%@", dict[@"name"]);
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];
[dict setObject:@"iversion" forKey:@"name"];
NSLog(@"%@", dict[@"name"]);
*/
//1.获取
var dict7 = ["name":"lnj", "age":30]
print(dict7["name"]!)
//2.修改
var dict8 = ["name":"lnj", "age":30]
dict8["name"] = "iverson"
print(dict8["name"]!)
var dict9 = ["name":"lnj", "age":30]
dict9.updateValue("iverson", forKey: "name")
print(dict9["name"]!)
// 3.更新
// updateValue返回一个可选类型, 如果字典中不存在需要更新的key, 那么返回nil, 如果存在返回原始值
var dict10 = ["name":"lnj", "age":30]
if let orignal = dict10.updateValue("iverson", forKey: "name")
{
print(dict10["name"]!)
print(orignal)
}
// updateValue返回一个可选类型, 如果字典中不存在需要更新的key, 那么返回nil并且会将新的键值对添加到字典中
var dict11 = ["name":"lnj", "age":30]
if let orignal = dict11.updateValue("iverson", forKey: "abc")
{
print(dict11["abc"]!)
print(orignal)
}
print(dict11)
/*
4.添加
OC:
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];
dict[@"height"] = @175;
NSLog(@"%@", dict);
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];
[dict setObject:@175 forKey:@"height"];
NSLog(@"%@", dict);
*/
var dict12 = ["name":"lnj", "age":30]
dict12["height"] = 175;
print(dict12)
/*
5.删除
OC:
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];
[dict removeObjectForKey:@"name"];
NSLog(@"%@", dict);
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];
[dict removeAllObjects];
NSLog(@"%@", dict);
*/
var dict13 = ["name":"lnj", "age":30]
dict13.removeValueForKey("name")
print(dict13)
// removeValueForKey返回一个可选类型, 如果字典中不存在需要删除的key, 那么返回nil并且不会执行任何操作, 如果存在则删除key对应的值, 并且返回被删除的值
var dict14 = ["name":"lnj", "age":30]
if let orignal = dict14.removeValueForKey("names")
{
print(dict14)
print(orignal)
}
print(dict14)
var dict15 = ["name":"lnj", "age":30]
dict15.removeAll(keepCapacity: true)
/*
遍历字典
OC:
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"key = %@ value = %@", key, obj);
}];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];
NSArray *keys = [dict allKeys];
for (NSString *key in keys) {
NSLog(@"%@", key);
}
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];
NSArray *values = [dict allValues];
for (NSString *value in values) {
NSLog(@"%@", value);
}
*/
var dict16 = ["name":"lnj", "age":30]
for (key , value) in dict16
{
print("key = \(key) value = \(value)")
}
var dict17 = ["name":"lnj", "age":30]
for key in dict17.keys
{
print("key = \(key)")
}
var dict18 = ["name":"lnj", "age":30]
for value in dict18.values
{
print("value = \(value)")
}
2.if语句
/*
if语句基本使用
OC:
int age1 = 10;
int age2 = 20;
int max;
max = age2;
if (age1 > age2) {
max = age1;
}
NSLog(@"%d", max);
if (age1 > age2) {
max = age1;
}else
{
max = age2;
}
NSLog(@"%d", max);
如果只有一条指令if后面的大括号可以省略
Swift:
if 条件表达式 {指令} if 条件表达式 {指令} else{指令}
0.if后的圆括号可以省略
1.只能以bool作为条件语句
2.如果只有条指令if后面的大括号不可以省略
*/
var age1:Int
var age2:Int
var max:Int
max = age2;
if age1 > age2
{
max = age1
}
print(max)
if age1 > age2
{
max = age1;
}else
{
max = age2;
}
print(max)
/*
多分支
OC:
float score = 99.9;
if (score >= 90) {
NSLog(@"优秀");
}else
{
if (score >= 60) {
NSLog(@"良好");
}else
{
NSLog(@"不给力");
}
}
if (score >= 90) {
NSLog(@"优秀");
}else if (score >= 60)
{
NSLog(@"良好");
}else
{
NSLog(@"不给力");
}
*/
var score = 99.9;
if score >= 90
{
print("优秀")
}else if score >= 60
{
print("良好")
}else
{
print("不给力")
}
3.while
/*
while循环
格式:while(循环保持条件){需要执行的语句}
OC:
int i = 0;
int sum = 0;
while (i <= 10) {
sum = i++;
}
while (i <= 10)
sum = i++;
NSLog(@"%d", sum);
如果只有一条指令while后面的大括号可以省略
Swift:
0.while后的圆括号可以省略
1.只能以bool作为条件语句
2.如果只有条指令while后面的大括号不可以省略
*/
var i:Int = 0
var sum:Int = 0
while (i <= 10)
{
sum = i++
}
print("\(sum)")
var i1:Int = 0
var sum1:Int = 0
while i1 <= 10
{
sum1 = i1++
}
print("\(sum1)")
/*
do while循环
格式:do while(循环保持条件) {需要执行的语句}
OC:
int i = 0;
int sum = 0;
do {
sum = i++;
} while (i <= 10);
NSLog(@"%d", sum);
int i = 0;
int sum = 0;
do
sum = i++;
while (i <= 10);
NSLog(@"%d", sum);
如果只有一条指令if后面的大括号可以省略
Swift2.0之后变为 repeat while, do用于捕捉异常
0.while后的圆括号可以省略
1.只能以bool作为条件语句
2.如果只有条指令do后面的大括号不可以省略
*/
var i2:Int = 0
var sum2:Int = 0
repeat{
sum2 = i2++;
}while(i2 <= 10)
print(sum2)
var i3:Int = 0
var sum3:Int = 0
repeat{
sum3 = i3++;
}while i3 <= 10
print(sum3)
4.for循环
/*
for循环
格式: for (初始化表达式;循环保持条件;循环后表达式) {需要执行的语句}
OC:
int sum = 0;
for (int i = 0; i <= 10; i++) {
sum = i++;
}
NSLog(@"%d", sum);
int sum = 0;
int i = 0;
for (; i <= 10; i++) {
sum = i++;
}
NSLog(@"%d", sum);
int sum = 0;
int i = 0;
for (; i <= 10; ) {
sum = i++;
i++;
}
NSLog(@"%d", sum);
int sum = 0;
int i = 0;
for ( ; ; ) {
sum = i++;
i++;
if (i > 10) {
break;
}
}
NSLog(@"%d", sum);
int sum = 0;
int i = 0;
for ( ; ; ) {
sum = i++;
i++;
NSLog(@"%d", sum);
}
如果只有一条指令for后面的大括号可以省略
for后面的三个参数都可以省略, 如果省略循环保持语句, 那么默认为真
Swift:
0.for后的圆括号可以省略
1.只能以bool作为条件语句
2.如果只有条指令for后面的大括号不可以省略
3.for后面的三个参数都可以省略, 如果省略循环保持语句, 那么默认为真
*/
var sum:Int = 0
for var i = 0 ; i <= 10 ; i++
{
sum = i++
}
print(sum)
var sum1:Int = 0
var i1 = 0
for ; i1 <= 10 ; i1++
{
sum1 = i1++
}
print(sum1)
var sum2:Int = 0
var i2 = 0
for ; i2 <= 10;
{
sum2 = i2++
i2++
}
print(sum2)
var sum3:Int = 0
var i3 = 0
for ; ;
{
sum3 = i3++
i3++
if i3 > 10
{
break
}
}
print(sum3)
/*
for in循环
格式: for (接收参数 in 取出的参数) {需要执行的语句}
for in含义: 从(in)取出什么给什么, 直到取完为止
OC:
for (NSNumber *i in @[@1, @2, @3, @4, @5]) {
NSLog(@"%@", i);
}
NSDictionary *dict = @{@"name":@"lnj", @"age":@30};
for (NSArray *keys in dict.allKeys) {
NSLog(@"%@", keys);
}
NSDictionary *dict = @{@"name":@"lnj", @"age":@30};
for (NSArray *keys in dict.allValues) {
NSLog(@"%@", keys);
}
Swift:
for in 一般用于遍历区间或者集合
*/
var sum4:Int = 0
for i4 in 1...10 // 会将区间的值依次赋值给i
{
sum4 += i4;
}
print(sum4)
for dict in ["name":"lnj", "age":30]
{
print(dict);
}
for (key, value) in ["name":"lnj", "age":30]
{
print("\(key) = \(value)")
}
/*
break: 跳出循环, 无论循环保持条件是否还为真都不会再执行循环
continue: 跳出本次循环, 如果循环保持条件还为真还会继续执行循环
OC:
NSArray *arr = @[@1,@3, @5, @7, @8];
for (NSNumber *num in arr) {
if ([num isEqualTo:@(7)]) {
NSLog(@"找到幸运数字");
break;
}
NSLog(@"没有找到幸运数字");
}
NSArray *arr = @[@1,@3, @5, @7, @8];
int count = 0;
for (NSNumber *num in arr) {
if (num.intValue % 2 != 0 ) {
NSLog(@"不能被2整除");
continue;
}
NSLog(@"能被2整除");
count++;
}
NSLog(@"count = %d", count);
*/
var arr:Array<Int> = [1, 3, 5, 7, 8]
for num in arr{
if num == 7
{
print("找到幸运数字")
break
}
print("没有找到幸运数字")
}
var arr1:Array<Int> = [1, 3, 5, 7, 8]
var count:Int = 0
for num in arr1{
if num % 2 != 0
{
print("不能被2整除")
continue
}
print("能被2整除")
count++
}
print("count = \(count)")
- iOS Swift 基础四
- iOS编程基础-Swift(四)-对象类型
- iOS编程基础-Swift(四)-对象类型(续)
- iOS Swift 基础
- iOS Swift 基础二
- iOS Swift 基础三
- iOS swift 基础五
- ios-swift基础
- Swift基础(四)数组
- iOS开发 ---- Swift基础语法。
- iOS开发----Swift基础控件
- ios/swift基础组件代码
- swift基础(四):条件语句
- Swift编程基础(四):控制流
- Swift基础(四):闭包、枚举
- Swift语言基础笔记(四)
- Swift学习——Swift基础详解(四)
- iOS激情详解之Swift (四)
- 推理集
- 图像处理 - 镜象处理
- 《LoadRunner没有告诉你的》之六——获取有效的性能需求
- 数组中出现次数超过一半的数字
- oracle常用sql语句
- iOS Swift 基础四
- linux下借助mono编译C#提示未引用程序集(error CS0234)missing assembly reference
- uboot下NAND操作指令
- 深入Apache与Nginx的优缺点比较详解
- jQuery诞生记-原理与机制
- 传送门:子线程-->主线程
- Centos安装GateOne问题AttributeError: 'module' object has no attribute 'enable_pretty_logging'解决方案
- 简单的服务器(收发数据)
- SDUT1009Elevator