• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > 详解Swift中的数据类型类型转换

详解Swift中的数据类型类型转换

作者:珲少 字体:[增加 减小] 来源:互联网 时间:2017-05-28

珲少 通过本文主要向大家介绍了swift报文类型,swift类型转换,swift统计数据,swift数据,taylor swift等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、类型检查与转换

在Objective-C和Java中,任何类型实例都可以通过强转使编译器认为它是另一种类型的实例,这么做其实是将所有的安全检查工作都交给了开发者自己来做。先比之下,Swift中的Optional类型转换就会比较安全与可靠。

Swift中使用is关键字来进行类型的检查,其会返回一个布尔值true或者false来表明检查是否成立,示例如下:

var str = "HS"
if str is String {
  print(str)
}

</div>

Swift中有向上兼容与向下转换的特性,就是说,一个父类类型的集合可以接收子类的实例,同样,在使用这些实例变量时可以将其向下转换为子类类型,示例如下:

//自定义一个类及其子类
class MyClass {
  var name:String?
}

class MySubClassOne: MyClass {
  var count:Int?
}
class MySubClassTwo: MyClass {
  var isBiger:Bool?
}
//创建3个实例
var obj1 = MyClass()
obj1.name = "HS"
var obj2 = MySubClassOne()
obj2.count = 100
var obj3 = MySubClassTwo()
obj3.isBiger=true
//将实例存放在其公共父类类型的数组集合中
var array:[MyClass] = [obj1,obj2,obj3]
//进行遍历
for var i in 0..<array.count {
  var obj = array[i]
  if obj is MySubClassOne {
    print((obj as! MySubClassOne).count!)
    continue
  }
  if obj is MySubClassTwo {
    print((obj as! MySubClassTwo).isBiger!)
    continue
  }
  if obj is MyClass {
    print(obj.name!)
  }
}

</div>

有一点需要注意,在进行类型转换时,可以使用as!或者as?来进行,as!是一种强制转换方法,它在开发者确定类型无误是使用,如果用as!转换的类型有误,则会出现运行时错误。as?是Optional类型转换,如果转换失败,则会返回nil。

二、Any和AnyObject类型

在Objective-C中,常常使用id来表示引用类型的泛型,Swift中的AnyObject与之类似。示例如下:

//进行遍历
for var i in 0..<array.count {
  var obj = array[i]
  if obj is MySubClassOne {
    print((obj as! MySubClassOne).count!)
    continue
  }
  if obj is MySubClassTwo {
    print((obj as! MySubClassTwo).isBiger!)
    continue
  }
  if obj is MyClass {
    print((obj as! MyClass).name!)
  }
}
</div>

Any类型则比AnyOject类型更加强大,其可以混合值类型和引用类型一起工作,示例如下:

var anyArray:[Any] = [100,"HS",obj1,obj2,false,(1.1),obj3,{()->() in print("Closures")}]
</div>

上面示例的数组中包含了整型,字符串类型,引用类型,布尔类型和闭包。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Swift 数据类型
  • Swift 可选(Optionals)类型
  • Swift 类型转换
  • 详解Swift中的数据类型类型转换
  • 实例讲解Swift中引用类型的ARC自动引用计数
  • Swift编程之枚举类型详解
  • Swift编程中的一些类型转换方法详解
  • 深入解析Swift编程中枚举类型的相关使用
  • Swift内置的数字类型及基本的转换方法
  • Swift类型创建之自定义一个类型详解

相关文章

  • 2017-05-28深入解析Swift编程中的构造方法
  • 2017-05-22Swift 闭包
  • 2017-05-28Linux centos7环境下jdk安装教程
  • 2017-05-28在 Swift 中测试 UIAlertController的方法
  • 2017-05-28Swift中字典与JSON转换的方法
  • 2017-05-28解决Android Studio安装后运行出错dose not...和Internal error...
  • 2017-05-28swift 可选型的使用详解
  • 2017-05-28探讨Swift数组和字典
  • 2017-05-22Swift 可选(Optionals)类型
  • 2017-05-28Swift语言中字符串相关的基本概念解析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 用Swift编写自动录音器
    • 解析Swift中的泛型支持与使用
    • 关于swift的个人小结
    • Swift教程之类与结构详解
    • 探讨Swift数组和字典
    • Swift中的常量和变量简单概述
    • Swift教程之类的析构详解
    • Swift用final关键字来防止重写
    • MyBatis快速入门
    • 详解Swift面向对象编程中的方法(method)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有