//
// main.swift
// 练习 //
// Created by SZT on 2016/10/25.
// Copyright © 2016年年 SZT. All rights reserved. //
import Foundation
// 使⽤用字典的时候必须明确字典的key-value具体的数据类型
//创建⼀一个key为String,value为String的⼀一个空的字典 //[String:String]表示⼀一个key为String,value为String的字典类型 ,后⾯面的⼩小括号表示初始化
let dict = [String:String]()
let dict1:[String:Int] = ["age":18,"count":20,"grade":5]
let dict2:[String:String] = ["name":"张三","gender":"male"] print(dict1)
print(dict2)
//通过key值来获取到的value值是⼀一个可选类型 let age = dict1["age"]
let gen = dict2["gender"]
print(age!,gen!)
//获取所有的key值和所有的value值 let keys = dict2.keys
let values = dict2.values //遍历所有的key值
for key in keys{ print(key)
}
// 遍历所有的value值 for value in values{
print(value) }
//字典遍历
for (key,value) in dict2{
print("key = \(key),value = \(value)") }
//
let tempDict = ["key1":"value1","key2":"value2","key3":"value2","key4":"value2"]
} }
// 字典同样分为可变字典(var)和不不可变字典(let) //可变字典可以增加删除键值对
var mDict:[String:Int] = ["age":18]
// 增加健值对:grade:5
//字典[key] = value:如果key存在的话这就是更更新键值对的操作,如果不不存在的话就是⼀一个增加健值 对的操作
mDict["grade"] = 5 print("mDict = \(mDict)") mDict["grade"] = 6 print("mDict = \(mDict)")//合并两个字典
let dict11 = ["name":"lisi","gender":"male"]
var dict22 = ["grade":"5","phone":"1234567","name":"zhangsan"] for (key,value) in dict11{
dict22[key] = value }
print("dict22 = \(dict22)")
// 删除键值对
//dict22.removeAll(keepCapacity: true)// 移除所有的key-value值后是否保存⼤大⼩小
//removeValueForKey(key),根据⼀一个key值来移除键值对 dict22.removeValueForKey("name")
print("dict22 = \(dict22)")
// 新建⼀一个字典存储下⾯面信息:
/*
C: 成⻰龙:123 陈⼩小春:234 陈冠希:345 D: ⼤大S:456
F: 范冰冰:567 发哥:678
Z: 甄⼦子丹丹:789 钟镇伟890
*/
let nameDict:[String:[String]] = ["C":["成⻰龙","陈⼩小春","陈冠希"],"D":["⼤大S"],"F":["范冰冰","发哥"],"Z": ["甄⼦子丹丹","钟镇伟"]]
let confidictDict:[String:[String:Int]] = ["C":["成⻰龙":123]]
//swift: 枚举 //不不⽤用跟整型数字关联,默认也没有跟整型数字关联
//可以跟任意类型关联,⽐比如整型,浮点型,字符串串。 /*
不不跟任何数据关联的枚举格式
enum ⾃自定义的枚举类型{ case 枚举值0
case 枚举值1
case 枚举值2
.... }
如果是关联了了数据的枚举格式:
enum ⾃自定义枚举类型:关联的数据类型(⽐比如Int,Double,String){
case 枚举值0 = 值0 case 枚举值1 = 值1
....... }
case four
case five }
}
enum Grade:String{ case One = "First" case Two = "Second" case Three = "Third"
}
//创建枚举变量量
print(month0,month0.hashValue)
print(month1,month1.hashValue)
let num0 = number.one let num1:number = .five
//枚举值.rawValue 访问到的是该枚举值关联的值(枚举变量量有关联的时候才会出来的) //枚举值.hashValue 访问到的是该枚举值在枚举类型中位置
print("num0 = \(num0),\(num0.hashValue),\(num0.rawValue)") print("num1 = \(num1),\(num1.hashValue),\(num1.rawValue)”)
函数:
//C:封装了了⼀一段有特定功能的代码段 /* 形式:
返回值类型 函数名(参数列列表){ 代码段
如果 返回值类型 不不是void要return }
*/
//swift函数格式: /*
func 函数名(参数列列表)->返回值类型{ 功能代码段
return。。。
} */
//调⽤用:函数名(参数列列表)
//⽆无参⽆无返
// (1)
func printHello()->Void {
print("hello") }
printHello()
//(2)
func printHello1(){
print("hello--1") }
printHello1()
//(3)
func printHello2()->(){
print("hello---2") }
// main.swift
// 练习 //
// Created by SZT on 2016/10/25.
// Copyright © 2016年年 SZT. All rights reserved. //
import Foundation
// 使⽤用字典的时候必须明确字典的key-value具体的数据类型
//创建⼀一个key为String,value为String的⼀一个空的字典 //[String:String]表示⼀一个key为String,value为String的字典类型 ,后⾯面的⼩小括号表示初始化
let dict = [String:String]()
let dict1:[String:Int] = ["age":18,"count":20,"grade":5]
let dict2:[String:String] = ["name":"张三","gender":"male"] print(dict1)
print(dict2)
//通过key值来获取到的value值是⼀一个可选类型 let age = dict1["age"]
let gen = dict2["gender"]
print(age!,gen!)
//获取所有的key值和所有的value值 let keys = dict2.keys
let values = dict2.values //遍历所有的key值
for key in keys{ print(key)
}
// 遍历所有的value值 for value in values{
print(value) }
//字典遍历
for (key,value) in dict2{
print("key = \(key),value = \(value)") }
//
let tempDict = ["key1":"value1","key2":"value2","key3":"value2","key4":"value2"]
//遍历打印key和value分别为key2,value2 的健值对
for (a,b) in tempDict{
if a == "key2" && b == "value2"{ print(a,b)} }
// 字典同样分为可变字典(var)和不不可变字典(let) //可变字典可以增加删除键值对
var mDict:[String:Int] = ["age":18]
// 增加健值对:grade:5
//字典[key] = value:如果key存在的话这就是更更新键值对的操作,如果不不存在的话就是⼀一个增加健值 对的操作
mDict["grade"] = 5 print("mDict = \(mDict)") mDict["grade"] = 6 print("mDict = \(mDict)")//合并两个字典
let dict11 = ["name":"lisi","gender":"male"]
var dict22 = ["grade":"5","phone":"1234567","name":"zhangsan"] for (key,value) in dict11{
dict22[key] = value }
print("dict22 = \(dict22)")
// 删除键值对
//dict22.removeAll(keepCapacity: true)// 移除所有的key-value值后是否保存⼤大⼩小
//removeValueForKey(key),根据⼀一个key值来移除键值对 dict22.removeValueForKey("name")
print("dict22 = \(dict22)")
// 新建⼀一个字典存储下⾯面信息:
/*
C: 成⻰龙:123 陈⼩小春:234 陈冠希:345 D: ⼤大S:456
F: 范冰冰:567 发哥:678
Z: 甄⼦子丹丹:789 钟镇伟890
*/
let nameDict:[String:[String]] = ["C":["成⻰龙","陈⼩小春","陈冠希"],"D":["⼤大S"],"F":["范冰冰","发哥"],"Z": ["甄⼦子丹丹","钟镇伟"]]
let confidictDict:[String:[String:Int]] = ["C":["成⻰龙":123]]
//swift: 枚举 //不不⽤用跟整型数字关联,默认也没有跟整型数字关联
//可以跟任意类型关联,⽐比如整型,浮点型,字符串串。 /*
不不跟任何数据关联的枚举格式
enum ⾃自定义的枚举类型{ case 枚举值0
case 枚举值1
case 枚举值2
.... }
如果是关联了了数据的枚举格式:
enum ⾃自定义枚举类型:关联的数据类型(⽐比如Int,Double,String){
case 枚举值0 = 值0 case 枚举值1 = 值1
....... }
*/ //C语⾔言:枚举作⽤用:将⼀一些有特定意义的英⽂文跟数字⼀一⼀一对应起来
enum Month{
case jan case feb case mar case apr case may} //如果枚举值关联的是整型值的话,后⾯面的枚举值会⾃自动累加1
enum number:Int{
case one = 10 case two = 20 case three = 30case four
case five }
//如果枚举类型跟⾮非整型值进⾏行行关联的话,所有的枚举值都应该关联上特定的值
enum Length:Double{
case short = 2.3 case middle = 4.6 case large = 6.9}
enum Grade:String{ case One = "First" case Two = "Second" case Three = "Third"
}
//创建枚举变量量
let month0 = Month.jan
//如果明确了了变量量或者常量量是属于某⼀一种枚举类型,那么赋值可以直接使⽤用 .枚举值 let month1:Month = .mar
//hashValue跟枚举值的排序有关print(month0,month0.hashValue)
print(month1,month1.hashValue)
let num0 = number.one let num1:number = .five
//枚举值.rawValue 访问到的是该枚举值关联的值(枚举变量量有关联的时候才会出来的) //枚举值.hashValue 访问到的是该枚举值在枚举类型中位置
print("num0 = \(num0),\(num0.hashValue),\(num0.rawValue)") print("num1 = \(num1),\(num1.hashValue),\(num1.rawValue)”)
函数:
//C:封装了了⼀一段有特定功能的代码段 /* 形式:
返回值类型 函数名(参数列列表){ 代码段
如果 返回值类型 不不是void要return }
*/
//swift函数格式: /*
func 函数名(参数列列表)->返回值类型{ 功能代码段
return。。。
} */
//调⽤用:函数名(参数列列表)
//⽆无参⽆无返
// (1)
func printHello()->Void {
print("hello") }
printHello()
//(2)
func printHello1(){
print("hello--1") }
printHello1()
//(3)
func printHello2()->(){
print("hello---2") }