当前位置: 首页 > news >正文

国外app设计网站免费咨询男科医院

国外app设计网站,免费咨询男科医院,山西网站建设设计,馨端网站建设在Swift中,有一种变量称为可选变量(Optional),具体说明见Swift初步入门。这种变量的值可以存在也可以为空(nil)。在Swift中,可以通过将if语句和赋值语句结合,有条件地展开&#xff0…

在Swift中,有一种变量称为可选变量(Optional),具体说明见Swift初步入门。这种变量的值可以存在也可以为空(nil)。在Swift中,可以通过将if语句和赋值语句结合,有条件地展开(unwrap)可选变量,即在该可选变量值不为nil的前提下展开。这种展开方式称为"可选绑定"(Optional binding)。文章Unwrapping Optionals With Optional Binding in Swift - Khawer Khaliq和swift那点事儿之optional(可选绑定)_swift initializer for conditional binding must hav-CSDN博客等都对这种绑定方式做了说明,但使用的例子或是涉及类,甚至涉及网络爬虫,并不是用最简洁的方式介绍可选绑定的使用方式。本文用简单的例子来介绍"可选绑定"的使用方法。在本文的例子中,只使用基本的变量类型。

一、可选绑定的基本介绍

在这里,以一个简单的Int?类型的变量开始。

var x:Int? = 3

现在设计一个逻辑:如果x值不是nil,就将其转化为二进制,否则不要转。不使用这样的句式:

if x != nil {}

可以这样写:

var x:Int? = 3
var binStr:String = ""
if let xValue = x{ //xValue is the deoptionalized x if x contains valuebinStr = String(xValue, radix:2)
} 
print("x=3 converted to binary is \(binStr)")
x = nil
if let xValue = x{ //non-nilbinStr = String(xValue, radix:2)
}
else{ //nilprint("x=nil is nil now")
}

在该代码中,if let xValue = x表明如果x不为nil,那么就会执行xValue = x语句并给出true的判断结果,进入if分支;如果x为nil,就直接进入else分支。注意,xValue在这里不是可选变量,而是已被展开的x

运行结果为:

x=3 converted to binary is 11
x=nil is nil now

注意let xValue = x不要加括号!以下写法是非法的:

if (let xValue = x){}

其实还有一种更简单的写法

let y:Int? = 10
//a more easy way
if let y{binStr = String(y,radix: 2)print("y=10 converted to binary is \(binStr)")
}//here y is temporarily used as a non-optional inside the if statement
print("now y is still \(y)")//see it is still optional. Remember that in optional binding the non-optional variable is temporary 

在该代码中,如果y值不为nil,那么y就会自动转化为正常的、非可选的Int类型进入if分支。也就是说,在语句binStr = String(y,radix: 2)中,y是Int而非Int?类型。但是,离开if分支后,y会恢复为Int?类型。所以,运行结果为:

y=10 converted to binary is 1010
now y is still Optional(10)

二、一个简单但有用的例子

如果我们要把字符串用于数字运算上,肯定要先把它转化为数值类型。但是,并不是所有的字符串都能转化为数值类型的。Int()是一个转化的函数,但结果也是可选的Int?类型(转化失败就输出nil)。所以,我们可以用可选绑定来用简单的语句设计程序。

可以这样写:

if let aa = Int("1"), let bb = Int("2"), aa < bb{print("aa < bb")
} //This is a way of writing several optional binds into an if statement (use comma)

注意,在Swift中,可以用逗号(comma)分割不同的条件判断语句。可以阅读这篇文章:Swift条件判断中的逗号_swift if判断 性能 & ,-CSDN博客。

所以在该代码中,Int("1")Int("2")输出的都是Int?类型,但只要值不为nil(转化成功),变量aabb都是Int类型,可以参与aa<bb的数字判断。

运行结果为:

aa < bb

还可以这样写

let aa:Int? = Int("1")
let bb:Int? = Int("rr")
if let aa, let bb, aa < bb{print("aa < bb")
}
else{print("At least one of them is not a number so not comparable")
}//this writing is ok too

运行结果为:

At least one of them is not a number so not comparable
http://www.yayakq.cn/news/534081/

相关文章:

  • 如何删除网站死链交互式网站设计怎么做
  • 重庆品牌网站建设公司排名lnmp wordpress ssl
  • 晋江做网站的公司wordpress 首页登录注册
  • php 关闭网站最低成本做企业网站
  • 南宁网站外包wordpress站点是什么意思
  • 做平台的网站博客推广那个网站列好
  • 做网站需要了解什么东西wordpress rt 15主题
  • 网站制作注意事项电商平面设计工作内容
  • 高端的电影网站前端开发和网站建设
  • 网站技术防护建设公司网站制作计入什么科目
  • 广州网站排名优化开发镇江seo网站优化
  • 做网站怎么设置会员网站建站网站496565
  • 河北企业建站网站建设 意识形态
  • 企业如何做好网站运营管理网络营销的基本概念
  • 张家口网站建设网站运营流程
  • html好看的网站的代码调兵山 网站建设
  • 做网站攻略个人资讯网站建设
  • 临武网站建设新洲区城乡建设局网站
  • 了解深圳网站页面设计做互联网交易网站的条件
  • 如何将网站添加到信任站点安徽工程信息网人员查询
  • 手游网站怎么做的河南建设网站公司简介
  • 网站设计需求模板系统门窗品牌排行前十名
  • 网络营销的网站建设报告网站流量排行
  • 建设网站广州市wordpress wap
  • 临沂做拼多多网站网站开发公司计划书
  • 布吉医院网站建设外卖网站建设的策划方案
  • 做网站IP网站建设及网络维护合同
  • 承德微网站开发怎样在拼多多上卖自己的产品
  • 嘉定网站设计制作优化排名四川二滩建设咨询有限公司网站
  • 商务网站建设与维护试卷网上做任务的网站有哪些内容