iOS开发Swift篇—(三)字符串和数据类型

一、字符串

字符串是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 = 2

var age = 20

let str = "我今年\(age)岁了,有\(hand)只手"

// str的内容是"我今年20岁了,有2只手"

注意:swift是类型安全语言,不同的数据类型是不能相加的。(需要强制转换类型)

2.打印输出

Swift提供了2个打印输出函数

println :输出内容后会自动换行

print :对比println,少了个自动换行的功能

二、数据类型

1.Swift中常用的数据类型有

Int、Float、Double、Bool、Character、String

Array、Dictionary、元组类型(Tuple)、可选类型(Optional)

注意:数据类型的首字母都是大写的

2.指定变量\常量的数据类型

  在常量\变量名后面加上 冒号(:) 和 类型名称

let age: Int = 10

上面代码表示:定义了一个Int类型的常量age,初始值是10

提示:一般来说,没有必要明确指定变量\常量的类型。如果在声明常量\变量时赋了初始值,Swift可以自动推断出这个常量\变量的类型

如:let age = 20  Swift会推断出age是Int类型,因为20是个整数

三、变量的初始化

Swift严格要求变量在使用之前必须进行初始化

注意:下面的代码是错误的

var a: Int

let c = a + 10

说明:

第1行代码中:Swift并不会为变量a赋初值,a没有初始化

第2行代码会报错

下面的代码是正确的

var a: Int = 20

let 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 等于0

let maxValue = UInt8.max  // UInt8 类型的 max 等于255

3.Int和UInt

Swift还提供了特殊的有符号整数类型Int和无符号整数类型UInt

说明:Int\UInt的长度和当前系统平台一样

在32位系统平台上,Int和UInt的长度是32位

在64位系统平台上,Int和UInt的长度是64位

Int在32位系统平台的取值范围:-2147483648 ~ 2147483647

建议

在定义变量时,别总是在考虑有无符号、数据长度的问题

尽量使用Int,这样可以保证代码的简洁、可复用性

4.存储范围

每种数据类型都有各自的存储范围,比如

Int8的存储范围是:–128 ~ 127

UInt8的存储范围是:0 ~ 255

如果数值超过了存储范围,编译器会直接报错

注意:下面的语句都会直接报错

let num1: UInt8 = -1

let 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.5

2)有指数    :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 * 1

0xMpN == 0xM * 2的N次方

let d3 = 0xC.8p1

// 0xC.8p1 == 0xC.8 * 2¹ == 12.5 * 2  == 25.0

3.数字格式

数字可以增加额外的格式,使它们更容易阅读

(1)可以增加额外的零 0

let money = 001999 // 1999

let money2 = 001999.000 // 1999.0

(2)可以增加额外的下划线 _ ,以增强可读性

let oneMillion1 = 1_000_000 // 1000000

let oneMillion2 = 100_0000 // 1000000

let 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.14

3和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

 

时间: 2024-10-12 13:07:23

iOS开发Swift篇—(三)字符串和数据类型的相关文章

李洪强iOS开发Swift篇—03_字符串和数据类型

李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http://www.wendingding.com" 1.字符串的常见操作 (1)用加号 + 做字符串拼接 let scheme = "http://" let path = “www.wendingding.com” let website = scheme + path // websi

iOS开发Swift篇—(八)函数(2)

iOS开发Swift篇—(八)函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } sum函数的函数类型是(Int, Int) -> Int 1 func printLine() 2 { 3 println("-----------") 4 } printLine

李洪强iOS开发Swift篇—07_函数

李洪强iOS开发Swift篇—07_函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名1: 形参类型1, 形参名2: 形参类型2, … (3)举例:计算2个整数的和 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } (4)没有返回值的函数 如果函数没有返回值,有3种写法 1 func 函数名(形参列

李洪强iOS开发Swift篇—08_函数(2)

李洪强iOS开发Swift篇—08_函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } sum函数的函数类型是(Int, Int) -> Int 1 func printLine() 2 { 3 println("-----------") 4 } printL

iOS开发Swift篇—(七)函数

iOS开发Swift篇—(七)函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名1: 形参类型1, 形参名2: 形参类型2, … (3)举例:计算2个整数的和 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } (4)没有返回值的函数 如果函数没有返回值,有3种写法 1 func 函数名(形参列表)

iOS开发Swift篇—(七)函数(1)

iOS开发Swift篇—(七)函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名1: 形参类型1, 形参名2: 形参类型2, … (3)举例:计算2个整数的和 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } (4)没有返回值的函数 如果函数没有返回值,有3种写法 1 func 函数名(形参列表)

iOS开发-Swift篇-(1)

iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C一样,可以用于开发iOS.Mac应用程序 苹果从2010年7月开始设计Swift语言,耗时4年打造 Swift的语法特点 从它的语法中能看到Objective-C.JavaScript.Python等语言的影子 语法简单.代码简洁.使用方便 可与Objective-C混合使用(相互调用) 为什么要设

iOS开发Swift篇(01) 变量&常量&元组

iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年部分iOS开发Swift篇专题的博文也不再做任何的校正和更新,特此说明. 2)该博文对应代码可以在https://github.com/HanGangAndHanMeimei/Code获得. 一.变量和常量 01 变量和常量的定义 在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不

iOS开发Swift篇—简单介绍

iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C一样,可以用于开发iOS.Mac应用程序 苹果从2010年7月开始设计Swift语言,耗时4年打造 Swift的语法特点 从它的语法中能看到Objective-C.JavaScript.Python等语言的影子 语法简单.代码简洁.使用方便 可与Objective-C混合使用(相互调用) 为什么要设

李洪强iOS开发Swift篇—09_属性

李洪强iOS开发Swift篇—09_属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个.swift文件 Swift中类的定义格式 1 class 类名 { 2 // ... 属性和方法 3 } 二.属性 1.什么是属性 Swift中的属性(Properties),就类似于其他面向对象语言中的成员变量 2.属性的分类 按照官方文档的说明,属性可以分为以下几种 (1)存储属性(Sto