从0开始入门学习Swift 03 类型转换、可选类型、解析值

本文介绍了Swift中的类型转换,如将String转为Int,强调了转换条件。接着讲解了可选类型的概念,作为值可能缺失的表示,并通过示例展示了如何使用可选值。最后,解释了如何通过叹号解析可选值,并提到了空合运算符的作用,即在可选值为空时提供默认值。

类型转换、可选类型、解析值


本章涉及的语句:

	//问号语法
	var value:String?
	//叹号解析
	print("value的值为" + value!)

1.类型转换
学过编程语言的都知道,不同类型之间的相互转换
这里就以最简单和比较有代表性的Int和String举例:

	//声明一个String类型的变量
	var a = "123"
	//那么在swift当中呢 类型转换和其他的语言非常相似,也是通过
	//数据类型 + () 的形式进行转换的
	
	//这样我们就把一个String类型转化为了Int类型
	Int(a)
	
	//让我们输出一下这个a
	print(type(of:  Int(a)! ))
	

输出结果为: Int
但是这我们需要注意的一个地方,有的同学可能会问,那么我如果是例如“含有文字”这样的字符串,转化能否得到一个Int类型呢

因为篇幅的原因这里就不挨个测试了,感兴趣的同学可以自己测试一想,这里我就直接告诉大家结果,编译器会报错,只支持将数字转化为Int。


2.可选类型

可选类型在我个人看来可以看作是一个nil和值的一个合并体
那么按照官方文档的话来讲:

Swift 还增加了可选(Optional)类型,用于处理值缺失的情况。可选表示 “那儿有一个值,并且它等于 x ” 或者 “那儿没有值” 。可选有点像在 Objective-C 中使用 nil ,但是它可以用在任何类型上,不仅仅是类。可选类型比 Objective-C 中的 nil 指针更加安全也更具表现力,它是 Swift 许多强大特性的重要组成部分。

那么我们直接来看到代码部分:

	//我们首先在这里声明一个可选类型
	var b:Int? = 10

	var c:String? = nil
	//打印这个两个值
	print(b)
	print(c)

输出结果为:
Optional(2)
nil

那么有的同学就会好奇询问了,这个Optional是个什么意思呢?
代表的是这个值还未解析。
nil 即 空值


3.解析值

在上一个步骤当中,设定了可选类型并输出,
现在我们将要把值解析出来

var b:Int? = 10

print(b!)

输出结果为 : 10 而不是 Optional(10)

就是在参数名称后边跟上一个叹号 ! 就能达到解析值的目的

扩展:空合运算符(Nil Coalescing Operator)

空合运算符(a ?? b)将对可选类型 a 进行空判断,如果 a 包含一个值就进行解包,否则就返回一个默认值 b。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。
空合运算符是对以下代码的简短表达方法:
a != nil ? a! : b
上述代码使用了三元运算符。当可选类型 a 的值不为空时,进行强制解封(a!),访问 a 中的值;反之返回默认值 b。

let defaultColorName = "red"

var userDefinedColorName: String?   //默认值为 nil

var colorNameToUse = userDefinedColorName ?? defaultColorName

print(colorNameToUse)

输出结果为: red

扩展资料 : Swift5.1

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值