Swift-基础-7

importFoundation

print("Hello, World!")


//39、使用可选链式调用代替强制展开
//
当声明一个的属性时,将属性类型设置为可选类型:好处:当可选类型的属性被赋予初始值时,系统调用初始值;当可选类型属性没有赋予初始值时,系统只会调用失败,如果强制展开就会崩溃;如果属性为一般类型,则必须赋予初始值
structPoint {
   
varwidth :Int=0
}

classPerson {
   
varname :String=""
   
   
varage :Int?
   
   
//
   varpo :Point?
   
   
}

varperson1 =Person.init()
person1.name="sfsd"
print(person1.name)
print(person1.age)

//print(person1.po!.width)

person1.po=Point.init()
person1.po?.width=1000

print(person1.po?.width)


/*********40、类型匹配*********/
//1.检查类型  is
vararray = [1,2,"10","68",7,10]
varstrNum =0
varintNum =0
foriinarray{
   
ifiisInt{
       
intNum+=1
    }
   
ifiisString{
       
strNum+=1
    }
}
print(intNum,strNum)


//2.向下转型as?as!
//NSMutableArray  NSArray  Array

vararr =NSMutableArray.init(capacity:0)
arr.addObject(1)
arr.addObject(2)

letarr2 =arrasNSArray
letarr3 =arr2asArray
print(arr3)
print(arr2)


//3.AnyAnyObject
//a.AnyObject
可以表示任何类类型的实例。
//b.Any
可以表示任何类型,包括函数类型。
vararray6 : [AnyObject] = [1,2,3,4,"io"]

print(array6)


/*************41、扩展*********/
//1.扩展语法  extension
extensionInt{
   
//2.属性扩展
   vara :Int{
       
returnself*10
    }

   
//3.方法扩展
   funcage() ->Void{
       
print("age")
    }
   
}

//使用扩展
varss :Int=5
print(ss)
print(ss.a)
ss.age()

//如果给父类进行扩展,子类同样可以获取到
classStudent {
   
varname =""
}
classXiao:Student{
   
varage =2
}

extensionStudent{
   
funceat() ->Void{
       
print("eat")
    }
}

varstu =Student.init()
stu.eat()

varxiao =Xiao.init()
xiao.eat()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值