swift 字典,元组,循环语句,判断语句,函数,结构体

没有废话,继续

//6.字典

var dict1 = [
             "key":"valuel",
             "key2":68,
             false:"value3"
            ]
print(dict1)

var dict2: Dictionary<Int, Int> = [23:567,56:78]
var dict3: Dictionary = [12.34:45.65]
var dict4 = [Int:Int]()
var dict5 = Dictionary<String,String>()

//增加  /  修改
dict5["key1"] = "value1"
dict5["key1"] = "value2" // 修改
dict5.updateValue("value3", forKey: "key2")



//删除
//dict5.removeAll()
dict5.removeValueForKey("key1")


//查
print(dict5["key2"])



//如果想要获取字典所有的keys和values。需要通过array进行强转

let allKeys = Array(dict5.keys)
print(allKeys)

let allValues = Array(dict5.values)
print(allValues)




//7.元组  (可理解为可放任意类型的数组)

var result = (404,"Not Found")

result.1 = "Not Found"



var yanhua = (num:1001,name:"yanhua",heifht:165,des:"我是华哥我怕谁")

yanhua.des = "怕海雷"


var (num1,name1,height1,des1) = yanhua
num1 = 1002

print(num1,yanhua.num,height1)

//print中嵌套变量使用 “\(变量名)”
print("num = \(num1)  name: \(name1)")



//8.分支语句

var score = 59


if score > 80 {
    print("优秀")
}else if score>60{
    print("及格")
}else{
    print("不及格")
}


//switch要求
//1.必须有分支满足的情况
//2.分支中一定要有操作
//3.不需要break
//4.switch可以进行范围判断
//5.可进行元组判断
switch score{
case 90:
    print("")

    fallthrough  //如果想要贯穿,手动添加fallthrough
case 59:
    print("")
default:
    print("")
}




switch score{
case 0...60:
    print(score)
default:
    print("")
}


switch score{
case 0...60:
    score += 2
    print(score)
case var s where s<80 && s>70:   //判断
    s+=20
    print("")
default:
    print("")
}

let point = (13,45)
switch point{
case(13,_):
    print("")
default:      print("")
}



//9.循环语句

repeat {
print("先执行一次")
} while false
print("aaa")


while score == 1 {
    print("aaa")
}


for var i = 0; i <= 10; i++ {
    print(i)
}

// 最常用  最常用  最常用
// ... :包括10
// ..< :不包括10
for i in 0...10 {
    print(i)
}


//遍历数组
let names = ["shuang","shuang1","shuang2"]

for name in names {
    print(name)
}

//遍历字典
let names2 = ["ju":"de","shuang":"shuang"]

for (key, value) in names2 {
    print("key:\(key)  value:\(value)")
}

for (_, value) in names2 {
    print("key:  value:\(value)")  //可以只遍历value
}




//10.函数

//无参无返回值

func test1(){

}

func test2() ->Void {

}


//无参数有返回值

func test3() ->String {
    return "string"
}

//有参数,无返回值

func test4(a: Int, b: Float){
    print(a,b)
}

//有参数,有返回值

func test5(name1: String, gender: Character) ->String {
    return "name: " + name1 + "gender: " + String(gender)
    //swift中字符串可以相加
}



//有参数,多个返回值  !!!!!!!!!!!

func test6(x:Int, y: Int) -> (Int,Int){
    return(x+y,x-y)
}



//调用函数

let (he,cha) = test6(10, y: 3)

let res = test6(78, y: 56)


//外部参数名、内部参数名
func test7(a b: String) {
    print(b)
}

test7(a: "lala")

func test8(a:Int, _ b:Int){

}

test8(22, 44)


//inout参数
func test9(inout a: Int){
    a=100
}

var num = 10

test9(&num)
print(num)



//函数的嵌套声明
func test10(){
    func test11(){
        func test12(){

        }
    }
}




//11.枚举
enum Season: Int {
    case Spring
    case Sumer
    case Autumn
    case Winter
}

var s1 = Season.Winter

print(s1.rawValue)


//使用原始值创建时要注意
var s2 = Season(rawValue: 2)
print(s2)
print(s2!)


// ?修饰可选类型,开辟空间,可有值,可为空
// !修饰可选类型,但在使用前必须有值
var xyz: Int?
xyz = 10
print(xyz!)   //强制解包



//与switch配合
switch s2!{
case .Spring:
    print("")
case .Sumer:
    print("")
case .Autumn:
    print("")
case .Winter:
    print("")
}





//12.结构体
struct Person {
    //声明属性
    var name:String
    var age: Int
    //声明结构体属性
    static var des: String?

    //声明方法
    func sayHi() {
        print("name: \(self.name)  age: \(age)")   //可以省略self.
        }

    //声明结构体方法
    static func sayHi() {
        print("你好。。。\(des)")
    }
}


//创建结构体对象
var p1 = Person(name: "dahua", age: 38)
p1.name = "38"
print(p1.name)

p1.sayHi()

Person.sayHi()



struct Student {
    var name: String
    var gender: String?
    var age: Int
    var hobby: String?

    //构造函数  (类似初始化方法)
    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    init(name: String,gender:String,age:Int,hobby:String){
        self.name = name
        self.gender = gender
        self.age = age
        self.hobby = hobby
    }



}


let stu = Student(name: "dada", age: 20)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值