iOS-Swift-字符串和数据类型
2018-03-05 17:42
274 查看
一、字符串字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www.wendingding.com"1.字符串的常见操作(1)用加号 + 做字符串拼接let scheme = "http://"let path = “www.wendingding.com”let website = scheme + path// website的内容是”http://www.wendingding.com”
(2)用反斜线 \ 和 小括号 () 做字符串插值(把常量\变量插入到字符串中)let hand = 2var age = 20let str = "我今年\(age)岁了,有\(hand)只手"// str的内容是"我今年20岁了,有2只手"
注意:swift是类型安全语言,不同的数据类型是不能相加的。(需要强制转换类型)
2.打印输出Swift提供了2个打印输出函数println :输出内容后会自动换行print :对比println,少了个自动换行的功能 二、数据类型1.Swift中常用的数据类型有Int、Float、Double、Bool、Character、StringArray、Dictionary、元组类型(Tuple)、可选类型(Optional)注意:数据类型的首字母都是大写的 2.指定变量\常量的数据类型 在常量\变量名后面加上 冒号(:) 和 类型名称let age: Int = 10上面代码表示:定义了一个Int类型的常量age,初始值是10 提示:一般来说,没有必要明确指定变量\常量的类型。如果在声明常量\变量时赋了初始值,Swift可以自动推断出这个常量\变量的类型如:let age = 20 Swift会推断出age是Int类型,因为20是个整数
三、变量的初始化Swift严格要求变量在使用之前必须进行初始化注意:下面的代码是错误的var a: Intlet c = a + 10 说明:第1行代码中:Swift并不会为变量a赋初值,a没有初始化第2行代码会报错 下面的代码是正确的var a: Int = 20let c = a + 10 四、整数1.整数的分类整数分为2种类型有符号(signed):正、负、零无符号(unsigned):正、零 Swift提供了8、16、32、64位的有符号和无符号整数,比如UInt8 :8位无符号整型Int32 :32位有符号整型Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64 2.最值可以通过min和max属性来获取某个类型的最小值和最大值let minValue = UInt8.min // UInt8 类型的 min 等于0let maxValue = UInt8.max // UInt8 类型的 max 等于255 3.Int和UIntSwift还提供了特殊的有符号整数类型Int和无符号整数类型UInt说明:Int\UInt的长度和当前系统平台一样在32位系统平台上,Int和UInt的长度是32位在64位系统平台上,Int和UInt的长度是64位Int在32位系统平台的取值范围:-2147483648 ~ 2147483647 建议在定义变量时,别总是在考虑有无符号、数据长度的问题尽量使用Int,这样可以保证代码的简洁、可复用性 4.存储范围每种数据类型都有各自的存储范围,比如Int8的存储范围是:–128 ~ 127UInt8的存储范围是:0 ~ 255 如果数值超过了存储范围,编译器会直接报错注意:下面的语句都会直接报错let num1: UInt8 = -1let num2: Int8 = Int8.max + 1说明:第1行代码报错原因: UInt8不能存储负数第2行代码报错原因: Int8能存储的最大值是Int8.max 5.整数的表示形式整数的4种表示形式(1)十进制数:没有前缀 let i1 = 10 // 10(2)二进制数:以0b为前缀 let i2 = 0b1010 // 10(3)八进制数:以0o为前缀 let i3 = 0o12 // 10(4)十六进制数:以0x为前缀 let i4 = 0xA // 10 五、浮点数1.浮点数说明浮点数,就是小数。Swift提供了两种浮点数类型Double :64位浮点数,当浮点值非常大或需要非常精确时使用此类型Float :32位浮点数,当浮点值不需要使用Double的时候使用此类型 精确程度Double :至少15位小数Float :至少6位小数 注意:如果没有明确说明类型,浮点数默认就是Double类型let num = 0.14 // num是Double类型的常量 2.浮点数的表示形式浮点数可以用 十进制 和 十六进制 2种进制来表示(1)十进制(没有前缀)1)没有指数:let d1 = 12.52)有指数 :let d2 = 0.125e2 // 0.125e2 == 0.125 * 10²MeN == M * 10的N次方 (2)十六进制(以0x为前缀,且一定要有指数)let d3 = 0xC.8p0 // 0xC.8p0 == 0xC.8 * 2º == 12.5 * 10xMpN == 0xM * 2的N次方let d3 = 0xC.8p1 // 0xC.8p1 == 0xC.8 * 2¹ == 12.5 * 2 == 25.0 3.数字格式数字可以增加额外的格式,使它们更容易阅读(1)可以增加额外的零 0let money = 001999 // 1999let money2 = 001999.000 // 1999.0(2)可以增加额外的下划线 _ ,以增强可读性let oneMillion1 = 1_000_000 // 1000000let oneMillion2 = 100_0000 // 1000000let overOneMillion = 1_000_000.000_001 // 1000000.000001 说明:增加了额外的零 0和下划线 _ ,并不会影响原来的数值大小 六、类型转换两个类型不相同的数值,是不能直接进行运算的示例1:注意:下面的语句是错误的let num1: UInt8 = 10; let num2: Int = 20;let sum: Int = num1 + num2 第3行会报错说明:报错原因:num1是UInt8类型,num2是类型Int,类型不同,不能相加解决方案:将num1转为Int类型,就能与num2进行相加下面的语句是正确的let sum: Int = Int(num1) + num2 示例2:注意:下面的语句是错误的let num1 = 3 // num1是Int类型let num2 = 0.14 // num2是Double类型let sum = num1 + num2第3行报错说明:报错原因:num1是Int类型,num2是类型Double,类型不同,不能相加解决方案:将num1转为Double类型,就能与num2进行相加下面的语句是正确的let sum = Double(num1) + num2 注意:下面的写法是正确的let sum = 3 + 0.143和0.14相加得到结果3.14,等赋值以后,编译器才会自动推断出sum是Double类型 七、类型别名可以使用typealias关键字定义类型的别名,跟C语言的typedef作用类似 typealias MyInt = Int // 给Int类型起了个别名叫做MyInt原类型名称能用在什么地方,别名就能用在什么地方 声明变量\常量类型 let num: MyInt = 20获得类型的最值 let minValue = MyInt.min类型转换 let num = MyInt(3.14) // 3
(2)用反斜线 \ 和 小括号 () 做字符串插值(把常量\变量插入到字符串中)let hand = 2var age = 20let str = "我今年\(age)岁了,有\(hand)只手"// str的内容是"我今年20岁了,有2只手"
注意:swift是类型安全语言,不同的数据类型是不能相加的。(需要强制转换类型)
2.打印输出Swift提供了2个打印输出函数println :输出内容后会自动换行print :对比println,少了个自动换行的功能 二、数据类型1.Swift中常用的数据类型有Int、Float、Double、Bool、Character、StringArray、Dictionary、元组类型(Tuple)、可选类型(Optional)注意:数据类型的首字母都是大写的 2.指定变量\常量的数据类型 在常量\变量名后面加上 冒号(:) 和 类型名称let age: Int = 10上面代码表示:定义了一个Int类型的常量age,初始值是10 提示:一般来说,没有必要明确指定变量\常量的类型。如果在声明常量\变量时赋了初始值,Swift可以自动推断出这个常量\变量的类型如:let age = 20 Swift会推断出age是Int类型,因为20是个整数
三、变量的初始化Swift严格要求变量在使用之前必须进行初始化注意:下面的代码是错误的var a: Intlet c = a + 10 说明:第1行代码中:Swift并不会为变量a赋初值,a没有初始化第2行代码会报错 下面的代码是正确的var a: Int = 20let c = a + 10 四、整数1.整数的分类整数分为2种类型有符号(signed):正、负、零无符号(unsigned):正、零 Swift提供了8、16、32、64位的有符号和无符号整数,比如UInt8 :8位无符号整型Int32 :32位有符号整型Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64 2.最值可以通过min和max属性来获取某个类型的最小值和最大值let minValue = UInt8.min // UInt8 类型的 min 等于0let maxValue = UInt8.max // UInt8 类型的 max 等于255 3.Int和UIntSwift还提供了特殊的有符号整数类型Int和无符号整数类型UInt说明:Int\UInt的长度和当前系统平台一样在32位系统平台上,Int和UInt的长度是32位在64位系统平台上,Int和UInt的长度是64位Int在32位系统平台的取值范围:-2147483648 ~ 2147483647 建议在定义变量时,别总是在考虑有无符号、数据长度的问题尽量使用Int,这样可以保证代码的简洁、可复用性 4.存储范围每种数据类型都有各自的存储范围,比如Int8的存储范围是:–128 ~ 127UInt8的存储范围是:0 ~ 255 如果数值超过了存储范围,编译器会直接报错注意:下面的语句都会直接报错let num1: UInt8 = -1let num2: Int8 = Int8.max + 1说明:第1行代码报错原因: UInt8不能存储负数第2行代码报错原因: Int8能存储的最大值是Int8.max 5.整数的表示形式整数的4种表示形式(1)十进制数:没有前缀 let i1 = 10 // 10(2)二进制数:以0b为前缀 let i2 = 0b1010 // 10(3)八进制数:以0o为前缀 let i3 = 0o12 // 10(4)十六进制数:以0x为前缀 let i4 = 0xA // 10 五、浮点数1.浮点数说明浮点数,就是小数。Swift提供了两种浮点数类型Double :64位浮点数,当浮点值非常大或需要非常精确时使用此类型Float :32位浮点数,当浮点值不需要使用Double的时候使用此类型 精确程度Double :至少15位小数Float :至少6位小数 注意:如果没有明确说明类型,浮点数默认就是Double类型let num = 0.14 // num是Double类型的常量 2.浮点数的表示形式浮点数可以用 十进制 和 十六进制 2种进制来表示(1)十进制(没有前缀)1)没有指数:let d1 = 12.52)有指数 :let d2 = 0.125e2 // 0.125e2 == 0.125 * 10²MeN == M * 10的N次方 (2)十六进制(以0x为前缀,且一定要有指数)let d3 = 0xC.8p0 // 0xC.8p0 == 0xC.8 * 2º == 12.5 * 10xMpN == 0xM * 2的N次方let d3 = 0xC.8p1 // 0xC.8p1 == 0xC.8 * 2¹ == 12.5 * 2 == 25.0 3.数字格式数字可以增加额外的格式,使它们更容易阅读(1)可以增加额外的零 0let money = 001999 // 1999let money2 = 001999.000 // 1999.0(2)可以增加额外的下划线 _ ,以增强可读性let oneMillion1 = 1_000_000 // 1000000let oneMillion2 = 100_0000 // 1000000let overOneMillion = 1_000_000.000_001 // 1000000.000001 说明:增加了额外的零 0和下划线 _ ,并不会影响原来的数值大小 六、类型转换两个类型不相同的数值,是不能直接进行运算的示例1:注意:下面的语句是错误的let num1: UInt8 = 10; let num2: Int = 20;let sum: Int = num1 + num2 第3行会报错说明:报错原因:num1是UInt8类型,num2是类型Int,类型不同,不能相加解决方案:将num1转为Int类型,就能与num2进行相加下面的语句是正确的let sum: Int = Int(num1) + num2 示例2:注意:下面的语句是错误的let num1 = 3 // num1是Int类型let num2 = 0.14 // num2是Double类型let sum = num1 + num2第3行报错说明:报错原因:num1是Int类型,num2是类型Double,类型不同,不能相加解决方案:将num1转为Double类型,就能与num2进行相加下面的语句是正确的let sum = Double(num1) + num2 注意:下面的写法是正确的let sum = 3 + 0.143和0.14相加得到结果3.14,等赋值以后,编译器才会自动推断出sum是Double类型 七、类型别名可以使用typealias关键字定义类型的别名,跟C语言的typedef作用类似 typealias MyInt = Int // 给Int类型起了个别名叫做MyInt原类型名称能用在什么地方,别名就能用在什么地方 声明变量\常量类型 let num: MyInt = 20获得类型的最值 let minValue = MyInt.min类型转换 let num = MyInt(3.14) // 3
相关文章推荐
- 基于Swift的iOS应用程序开发:字符串String与Data数据类型相互转换
- iOS开发Swift-字符串和数据类型
- iOS讲解迷惑--Swift基础(数据类型, 字符串, 数组, 字典 )
- iOS开发Swift语法回顾之基本的语法与数据类型
- swift 初级 字符串,数据类型,元组等简单语法
- iOS_Swift_集合数据类型
- swift : NSData数据类型与String字符串类型的转换方法
- 第3篇:swift语言笔记:基本语法/运算符/数据类型/字符串等关键点
- Swift 2.0 学习第1天:常量和变量, 数据类型,字符和字符串
- Swift3字符串转换为其他数据类型
- 【iOS】Swift数据类型、运算符、新增语句等小结
- swift学习笔记(一)(常量、变量、数据类型、字符串的拼接、数组、字典)
- [iOS]Objective-C中字符串数据类型与基础数据类型的相互转换
- Swift数据类型--布尔和字符串
- ios深度解析之Swift(基本数据类型)
- 3、swift开发iOS——swift数据类型
- 芒果iOS开发之Swift教程02-Swift基本数据类型
- ios深度解析之Swift(基本数据类型2)
- iOS 过滤后台传递 其他Json数据类型【过滤非字符串类型】
- iOS经典讲解之Swift数据类型详解