1、Swift中常用数据类型:首字母大写
Int、Float、Double、Bool、Character、String
Array、Dictionary、元组类型(Tuple)、可选类型Optional
 
2、指定数据类型
在常量/变量后面加上冒号(:)和类型名称,和Delphi很像
 
3、不指定数据类型:
let 、 var,系统自动推断数据类型
 
 
Swift严格要求变量在使用前必须进行初始化
 
 
整数:
分为两种:
有符号:signed,正、负、零
无符号:unsigned,正、零
Swift提供了8、16、32、64位的有符号和无符号的整数
Int8:8位有符号整数
UInt8:32位无符号
Int8、Int16、Int32、Int64
 
最值:
可以直接使用min和Max属性获取某个类型的最小值和最大值
let minValue = UInt8.min   //0
let maxValue = UInt8.max   //255
 
Int和UInt的长度和当前系统平台一样
在32位系统平台, Int 和 UInt的长度是32位
在64位系统,就是64位了
为了避免类型问题,就直接使用var就好了,让系统自己去判断,避免数据溢出
二进制:0b
八进制:0o
十六进制:0x
浮点数:
Double:64位
Float:32位
没有指定时默认Double类型
 
浮点数可以用十进制和十六进制来表示
 
时间:2015年08月04日
1、类型转换
相同类型变量、常量的才能进行操作
let a = 3 //a Int类型
let b = 0.15 //b Double类型
let sum = Double(a) + b //转换类型后才能操作
 
2、类型别名
可以使用typelias关键字定义类型的别名,和C语言的typedef作业类似
原类型名称能用在什么地方,别名就能用在什么地方
typealias MyInt = Int
let num :MyInt = 20

let minValue = MyInt.min

let mm = MyInt(3.14)  //3

可选类型

使用可选类型optional来处理可能缺失的情况。
标准格式:
var sum :Optional<Int>  //nil
常用格式:?,要紧跟类型
注意:如果没有赋值,默认为nil
 
var mm : Int?  //nil
mm = 100  //100
var num : Int? = 10  //10
 
if语句+强制解析(!)
可以使用if语句来判断可选是否包含值,如果有值:true,没有:false
var mm : Int?  //nil
mm = 100  //100
var num : Int? = 10  //10
if mm != nil {
    print(mm)  //输出结果: Optional(100)
}
强制解析:!
var mm : Int?  //nil
mm = 100  //100
var num : Int? = 10  //10
let sum = mm + num  //会报错
let sum = mm! + num!  //这样才正确:110
 
隐式解析:条件确定有值
var mm : Int!  //nil
mm = 100  //100
var num : Int! = 10  //10
if mm != nil {
    print(mm) //输出结果:100
}
let sum = mm + num  //这样就不用加!
什么是元组类型
Swift的特有类型,元组类型由N个任意类型的数据组成(N>=0)
组成元组类型的数据可以称为:元素
 
明确指定元组类型:
let person :(String ,Int ,String) = ("kuwo",25,"wowo")
明确指定元素的名称:
var location = (x:10,y:20)
//location有两个元素:x、y是元素
元素的访问:读写操作
方式一:用元素的名称
location.x = 15
location.y = 0
方式二:用元素的位置
location.0 = 30
location.1 = 45
 
元素的输出:
直接print(“\(元组名称)”)
 
使用细节:
1)可以省略元素的名称
let xxxx = (20,"abcd”)  //省略名称的元素,可以使用下标来取某个值
 
let position = (x : 10.5 , y:20)
 
let pson: () = ()
 
3)有类型就不能添加元素的名称
let person :(String ,Int ,String) = ("kuwo",25,"wowo")
 
4)可以接收用多个变量接收元组的数据
var (x,y) = (10,20)  //x = 10 y = 20
var point = (x,y)    //point由2个元素组成,分别是10,20
 
5)可以将元素分别赋值给多个变量
var point = (10,20) //point由2个元素组成,分别是10,20
var (x,y) = point  //x = 10 y = 20
 
6)可以使用下划线忽略某个元素的值,取出其他元素的值
var person = (20, "kuwo")
var (_ , name) = person  //name = "kuwo"

Swift数据类型的更多相关文章

  1. Swift数据类型简介

    用 Swift 编写 iOS 和 OS X 应用将是一场美妙的体验,Swift 之后也会不断开发新特性和兼容性. Swift 提供了与C.Objective-C的相似的基础数据类型,包含整数Int,浮 ...

  2. Swift 数据类型

    Swift 提供了非常丰富的数据类型,以下列出了常用了几种数据类型: Int 一般来说,你不需要专门指定整数的长度.Swift 提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同: 在32位 ...

  3. Swift数据类型简介(二)

    整数 整数就是没有小数部分的数字,比如42和-23.整数可以是有符号(正.负.零)或者无符号(正.零). Swift 提供了8,16,32和64位的有符号和无符号整数类型.这些整数类型和 C 语言的命 ...

  4. Swift数据类型及数据类型转换

    整型  Swift 提供 8.16.32.64 位形式的有符号及无符号整数.这些整数类型遵循 C 语言的命名规 约,如 8 位无符号整数的类型为 UInt8,32 位 有符号整数的类型为 Int32 ...

  5. Swift数据类型之整型和浮点型-备

    Swift提供8.16.32.64位形式的有符号及无符号整数.这些整数类型遵循C语言的命名规约,我归纳了Swift中的整型: 整型示例: print("UInt8 range: \(UInt ...

  6. Swift数据类型_整型和浮点型

    //swift中的整型和浮点型 /** * //类型推断整数是Int 浮点数是Double ,日常使用需要注意不能越界,存储时间毫秒数 英雄经验数等等之类内容容易越界 整型 大多数情况下,你不需要在代 ...

  7. 《从零开始学Swift》学习笔记(Day 71)——Swift与C/C++混合编程之数据类型映射

    原创文章,欢迎转载.转载请注明:关东升的博客 如果引入必要的头文件,在Objective-C语言中可以使用C数据类型.而在Swift语言中是不能直接使用C数据类型,苹果公司为Swift语言提供与C语言 ...

  8. iOS开发系列--Swift进阶

    概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...

  9. swift与OC之间不得不知道的21点

    swift与OC之间不得不知道的21点   自6月的WWDC大会上由苹果的大神Chris Lattner向我们首次展示swift至今已经大半年时间了,虽然绝大部分软件公司代码里还都见不到一丁点swif ...

随机推荐

  1. CF GYM 100703B Energy Saving

    题意:王子每月买m个灯泡给n个房间换灯泡,如果当前有的灯泡数够列表的第一个房间换的就全换,直到灯泡不够为止,给出q个查询,查询x月已经换好几个房子,手里还剩多少灯泡. 解法:水题……小模拟. 代码: ...

  2. 房租管理小软件(四):对linq的使用

    1.对LInq的封装如下: private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMap ...

  3. js中的继承2--原型继承

    一. 原型与构造函数 Js所有的函数都有一个prototype属性,这个属性引用了一个对象,即原型对象,也简称原型.这个函数包括构造函数和普通函数,我们讲的更多是构造函数的原型,但是也不能否定普通函数 ...

  4. js基础第八天

    返回前面起第一个字符位置 indexOf("sdfsdf");它是从左边索引为0开始数,而且只找第一个,然后返回该字符的位置.返回是个数值.如果找不到该字符,那么就会返回-1. 返 ...

  5. Js(Jquery)实现的弹出窗口

    想实现一个弹出层,过一段时间自动消失的功能. 之前的项目中是:在页面中预先先一个<div>区域,默认隐藏或者因为没有内容不显示.当需要显示信息时,将该<div>填充上内容,并用 ...

  6. NOIP 2015 神奇的幻方

    模拟,注意为偶数的情况 #include<cstdio> #include<cstring> #include<cstdlib> #include<iostr ...

  7. javascript设计模式5

    子类引用父类 function extend(subClass,superClass){ var F=function(){}; F.prototype=superClass.prototype; s ...

  8. 转载SSIS中的容器和数据流—数据转换(Transformations)

    对数据流来说按照需求将数据转换成需要的格式是数据操作中的一个关键的步骤.例如想要得到聚合排序后的运算结果,转换可以实现这种操作.和SQL Server 2000 DTS完全不同,这些操作不需要编写sc ...

  9. Qt QDebug :Cannot retrieve debugging output!

    调试Qt程序时用Qdebug类输出调试信息:     qDebug("read My Com"); 这个问题是个小问题,其实跟程序没关系.当你同时开多个Qt程序(Creator编程 ...

  10. hdu 2212

    1.简单的思维问题 各个位上阶乘的和 要和这个数相匹配 这样才能得到正确的解.各个位上阶乘的和 是最大是9*9!这样来求解.999999999   9个9 最大的各个位上的阶乘的和为3265920=9 ...