您的位置:首页 > 移动开发 > Swift

学校学习ios教程笔记,第五节swift中的字典以及枚举的概念与操作和初识函数

2016-10-26 14:00 591 查看
//
// 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 = 30
case 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") }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xcode swift