本文介绍: 类型别名数据类型取别名。比如给Int数据类型取别名,一个叫小孩,一个叫少年,一个叫青年,一个叫老年。实际上都是Int数据类型,只不过在代码阅读的时候,方便理解得多。给数据类型取别名,使用typealias关键字typealias child = Int typealias Teenager = Int typealias young = Int typealias old = Int类型转换强制转换:() var a = 11 var b =

类型别名

数据类型取别名。比如给Int数据类型取别名,一个叫小孩,一个叫少年,一个叫青年,一个叫老年。实际上都是Int数据类型,只不过在代码阅读的时候,方便理解得多。

数据类型取别名,使用typealias关键字

    typealias child = Int
    typealias Teenager = Int
    typealias young = Int
    typealias old = Int

类型转换

强制转换:()

    var a = 11
    var b = String(a)

?? 语法
我们强制转换一个数据类型的时候,如果转换不了,那么就告诉编译器转换不了的时候,取我??符号后面的值。

    var a = "hello"
    var b = 12
    b = b + Int(a)??10

此时a的值是非数字字符串类型,所以转不了Int,因此会取??后面的10作为参数,最终b赋值为12+10=22.

可选类型:问号?与 感叹号!

我们var定义变量而不赋初始值的时候,系统就会报错。因为swift需要值的内容来确定该变量的数据类型,并不会像javaoc语言一样,给没有初始化变量初始值

而在声明变量的时候,在声明类型的右侧加上“ ? ”,则表示该变量有可能为空,有可能不为空。这时候编译器就不会强制给该变量赋初始值了,也就不会报错了。

开发中,nil也是一种数据类型
我们经常会碰到,有些变量比如Button暂时为空,仅仅是先声明有这么一个Button,还没有初始化赋值,这种情况在所难免。
由于Swift是强类型语言Button的类型应该是UIButton而不是nil空类型,Swift中必须要明确每个变量与值的类型一一对应上,因此,当Button = nil 时会报类型不匹配错误
遇到这种情况可以声明该值可能为空的变量为可选类型

另外,比如String的可选类型和String类型不是同一种类型,在进行赋值的时候也是会报错的。

func getSomeString()->String?{
	......
}

let someString:String = getSomeString()//错误
//因为getSomeString()方法返回的是一个可选的String类型,
//和someString变量所声明的String类型不是同一种类型,所以编译通过

let someString:String= getSomeString()//正确
可选类型的声明方式
//方式1:
var button : Optional<UIButton> = nil
//方式2:
var name : String? = nil

如果我们确定某变量有值,可以在其右侧加上“ ! ”进行强制解包, 则表示告诉编译器该变量不为空,使得可以直接取出Optional当中的值。但如果该变量为nil而进行了强制解包,则会导致系统崩溃。如果真的需要进行强制解包操作建议解包前,先对变量是否为nil做一下判断

var year : Int = 100	//对的
year = nil	//报错
var years : Int= 100	//对的
years = nil	//允许编译通过
可选绑定

使用可选绑定写法就不需要加!进行强制解包了。

var string : String?
if let year = string {
    print("year is (year)")
}

原文地址:https://blog.csdn.net/kkkenty/article/details/124606708

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_14281.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注