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

Swift 基本数据类型

1、整型

  • Swift 提供了 IntUInt 两种整数类型,分别表示有符号和无符号的整数类型。另外 IntUInt 后面可以带有 8、16、32 和 64,以表示 8、16、32、64 位的整数。

    • 有符号整型 Int、Int8、Int16、Int32、Int64
    • 无符号整形 UInt、UInt8、UInt16、UInt32、UInt64
  • Swift 中 IntUInt 都是可以自适应平台的类型,其类型的字长始终和当前平台的原生字长相同,即 32 位系统下声明获得的是 32 位的整型,64 位系统下获得的是 64 位的整型。

  • 整数类型有 maxmin 属性,分别表示不同整数类型的最大值和最小值。

    • 最大值

      // 127
      Int8.max 或 INT8_MAX
    • 最小值

      // -128
      Int8.min 或 INT8_MIN
  • 整型的声明

    • 隐式声明机制

      // 自动调用构造函数
      let intNum = Int()                   // 默认初始值为 0
      let intNum = 18                      // 设置初始值为 18,自动推断为 Int 型
      let intNum: Int = 18                 // 设置初始值为 18
    • 显式声明机制

      // 显式的调用初始化构造器
      let intNum = Int.init()              // 默认初始值为 0
      let intNum = Int.init(18)            // 设置初始值为 18  
  • 其他方法或属性

    // 计算两个数字之间的距离(两数之差),结果 3
    intNum.distance(to: 21)
    
    // 访问变量或常量的字符串版本,结果 “18”
    intNum.description
    
    。。。。。

2、浮点型

  • Swift 为我们提供了两种有符号浮点数类型 FloatDouble

    • Float 是 32 位浮点数类型。
    • Double 是 64 位浮点数类型。
  • 当使用类型推断声明一个浮点型变量或者常量时,变量或常量总是默认被推断为类 Double 型。

  • 浮点型的声明

    • 隐式声明机制

      // 自动调用构造函数,定义 Float 型
      let floatNum = Float()               // 默认初始值为 0
      let floatNum: Float = 2.1            // 设置初始值为 2.1
      
      // 自动调用构造函数,定义 Double 型
      let doubleNum = Double()             // 默认初始值为 0
      let doubleNum = 2.2                  // 设置初始值为 2.2,自动推断为 Double 型
      let doubleNum: Double = 2.2          // 设置初始值为 2.2
    • 显式声明机制

      // 显式的调用初始化构造器,定义 Float 型
      let floatNum = Float.init()          // 默认初始值为 0
      let floatNum = Float.init(2.1)       // 设置初始值为 2.1
      
      // 显式的调用初始化构造器,定义 Double 型
      let doubleNum = Double.init()        // 默认初始值为 0
      let doubleNum = Double.init(2.2)     // 设置初始值为 2.2

3、布尔型

  • Swift 提供了一个非真即假的逻辑类型 “布尔型”。

    • 布尔型只有两种值 truefalse
    • Swift 语言中不能直接使用 0 或者非 0 来表示逻辑真假。
    • 可以直接在布尔变量前加 !,来达到布尔值取反的作用。
  • 布尔型的声明

    • 隐式声明机制

      // 自动调用构造函数
      let boolNum = Bool()                 // 默认初始值为 false
      let boolNum = true                   // 设置初始值为 true
      let boolNum: Bool = true             // 设置初始值为 true
    • 显式声明机制

      // 显式的调用初始化构造器
      let boolNum = Bool.init()            // 默认初始值为 false
      let boolNum = Bool.init(true)        // 设置初始值为 true

4、元组类型

  • 可以通过使用元组,把多个不同类型的值组合在一起,组成一个复合值。

    • 元组中的成员类型可以是相同的,也可以是不同的。
    • 元组中的成员可以直接当作常量或变量使用。
    • 元组的声明中也可以使用类型推断。
    • 元组可以用作函数返回值,它可以使函数能一次返回更多的信息。
  • 元组的声明

    • 标准声明

      // 定义时指定元组名称、成员名称并且初始化
      let stu = (name: "xiaoming", age: 18)
      
      // 定义时指定元组名称并且初始化,不指定成员名
      let stu = ("xiaoming", 18)
      
      // 定义时指明元素类型
      let stu: (String, Int) = ("xiaoming", 18)
    • 匿名声明

      // 声明一个匿名的元组
      let (name, age) = ("xiaoming", 18)  
  • 元组中元素的访问

    • 标准声明的元组

      // 使用元素名访问
      let stuName = stu.name
      
      // 使用元素在元组中的顺序下标访问
      let stuName = stu.0
    • 匿名声明的元组

      // 使用元素名访问
      let stuName = name
  • 如果想要获取元组中的某些重要部分加以利用,忽略一些不重要的信息时,可以把元组的值传递到一个新的元组中。在新元组中声明那些接受重要值的值成员,而不重要的部分使用下划线 _ 表示忽略。

    let (name, _) = stu

转载于:https://www.cnblogs.com/QianChia/p/8625927.html

相关文章:

  • iterator取集合元素
  • 前端ps切图,图文教程,详细。
  • android6.0以上权限动态申请,有视频链接可以看效果。
  • svm资料收集
  • java学习--基础知识第四天--笔记
  • WPF中自定义MarkupExtension
  • 省选专练CQOI2015网络吞吐量
  • 博客作业2---线性表
  • spring-boot jpa mysql emoji utfmb4 异常处理
  • list.FindAll of C#
  • 关于emgucv控制多摄像头问题
  • 一分钟上手, 让 Golang 操作数据库成为一种享受
  • 逆序对问题
  • 14.boost最小生成树 kruskal_min_spainning_tree
  • CAP原则(CAP定理)、BASE理论
  • hexo+github搭建个人博客
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android框架之Volley
  • CSS相对定位
  • ES6 学习笔记(一)let,const和解构赋值
  • es6(二):字符串的扩展
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java 内存分配及垃圾回收机制初探
  • Mysql数据库的条件查询语句
  • MySQL主从复制读写分离及奇怪的问题
  • Rancher如何对接Ceph-RBD块存储
  • React 快速上手 - 07 前端路由 react-router
  • Vim 折腾记
  • Vue组件定义
  • webpack+react项目初体验——记录我的webpack环境配置
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 给第三方使用接口的 URL 签名实现
  • 工作中总结前端开发流程--vue项目
  • 软件开发学习的5大技巧,你知道吗?
  • 通过git安装npm私有模块
  • 写代码的正确姿势
  • 异步
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 国内开源镜像站点
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #pragma pack(1)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (二)windows配置JDK环境
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十五)使用Nexus创建Maven私服
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .Net语言中的StringBuilder:入门到精通