Swift--基本数据类型(一)

不像更多语言中,X不要求你写一个分号(;)在你的代码中的每一个语句后,尽管能够这样做。然而,假设你想在一行中写入多个单独的语句分号是必需的:

.    1  let
cat = "";
println(cat)

.    2  // prints ""

数据类型

Integers

integers是整数,没有小数部分,如42和-23。整数有符号(正,零或负的)或无符号(正或零).

Swift提供8,16,32,和64位形式的符号和无符号整数。这些整数遵循类似于C的命名惯例,在一个8位无符号整数类型UINT8,以及一个32位带符号整数为Int32类型.

Integer Bounds

能够用其最小和最大属性訪问每一个整数类型的最小值和最大值

1 let
minValue =
UInt8.min // minValue is equal to 0, and is of type UInt8

2 let
maxValue =
UInt8.max // maxValue is equal to 255, and is of type UInt8

这些属性的值是适当的大小的号码类型(如UINT8在上面的样例中),并

能够在沿着同一类型的其他值的表达式,因此能够使用。

Int

在大多数情况下,你并不须要挑选整数的特定大小在代码中使用。Swift提供了一个额外的整数类型,int,它具有同样的大小作为当前平台的本地字大小:

?在32位平台,诠释的是相同大小的Int32。

?在64位平台,诠释的是相同大小的Int64。

除非你须要用整数的特定大小的工作,总是使用int代码中的整数值。这有助于代码的一致性和互操作性。即使在32位平台上,诠释能够存储不论什么值-2,147,483,648到2,147,483,647之间,而且是很多整数范围足够大。

UInt

Swift还提供了一个无符号的整数类型,UINT,它具有同样的大小作为当前平台的本地字大小:

?在32位平台上,UINT是大小同样的UInt32。

?在64位平台上,UINT是大小同样的UInt64。

 

Floating-Point Numbers

浮点数与小数部分的数字,如3.14159,0.1,和-273.15。浮点类型能够表示比整数类型更广泛的范围内的值,而且能够存储数字,

是更大或更小的比能够存储在一个Int。 SWIFT提供两个有符号浮点数类型:

?双代表一个64位浮点数字。使用它时,浮点值必须是很大的,或

特别精确。

?浮点表示一个32位浮点数字。使用它时,浮点值不须要64位精度。

Type Safety and Type Inference

Swift是一种类型安全的语言。类型安全的语言鼓舞你要搞清楚值的类型代码能够工作。假设您的代码部分须要一个字符串,你不能错误地传递一个诠释。

由于Swift是类型安全的,它会运行编译你的代码和标志的不论什么类型不匹配的错误时类型检查。这使您可以捕获并尽可能早地在开发过程中修正错误。

类型检查帮助您避免错误,当您正在使用不同类型的值。可是,这并不意味着你必须指定每个常量和变量所声明的类型。假设不指定值,你须要的类型,Swift使用类型推理来制定出对应的类型。类型判断使编译器自己主动判断出特定的表达式的类型时,它编译你的代码,仅仅需通过检查您提供的值。

由于类型判断,斯威夫特须要少得多的类型声明不是语言,如C或Objective-C 。常量和变量仍然显式类型,但大部分指定其类型的工作是为你做。

当你声明一个常量或变量的初始值类型判断是特别实用的。这一般是通过赋予文本值(或文字)到所声明的地步了常量或变量进行。 (字面上的值是直接出如今源码中的值,如以下的样例42和3.14159 。 )

比如,假设您指定42到一个新的常数常值,不用说它是什么类型,Swift判断出你想要的常量是一个诠释,由于你已经初始化它与一些看起来像一个整数

.    1  let
meaningOfLife=
42

.    2  // meaningOfLife is inferred to be of typeInt

相同,假设你不指定类型的浮点字面值,Swift判断出你想要创建一个Double

.    1  let
pi = 3.14159

.    2  // pi is inferred to be of type Double

Swift总是选择Double(而非Float)时判断浮点数类型。

假设你把在一个表达式中整数和浮点常量,一个Double类型会从上下文判断:

.    1  let
anotherPi=
3 + 0.14159

.    2  // anotherPi is also inferred to be of typeDouble

 

Numeric Literals

整型常量能够写成:

?一个十进制数,不带前缀

?一个二进制数,用前缀0b

?一个八进制数,用0°前缀

?一个十六进制数,以0x前缀

全部这些整型常量的有17的十进制值:

.    1  let
decimalInteger=
17

2  let
binaryInteger =
0b10001 // 17 in binary notation

.

3  let
octalInteger =
0o21 // 17 in octal notation

.

4  let
hexadecimalInteger =
0x11 // 17 inhexadecimal notation

.

浮点文本能够是十进制(不带前缀)或十六进制(以0x前缀)。它们必须始终具有在小数点的两側号码(或十六进制数)。他们也能够有一个可选的指数,由一个大写或小写e表示十进制浮点数表示,或大写或小写p表示十六进制浮点数

为十进制数用的exp指数,基数乘以10exp:

? 1.25e2means1.25×102,or125.0.

? 1.25e-2means1.25×10-2,or0.0125.

为十六进制数与EXP的指数,基部数乘以2EXP:

? 0xFp2means15×22,or60.0.??
0xFp-2means15×2-2,or3.75.

全部这些浮点常量的有12.1875十进制值:

.    1  let
decimalDouble=
12.1875

.    2  let
exponentDouble=
1.21875e1

.    3  let
hexadecimalDouble=
0xC.3p0

数字文本能够包括额外的格式,使它们更easy阅读。这两个整数和浮点数能够被填充

有额外的零,而且能够包括下划线,以帮助可读性。不管类型的格式影响文本的基本价值:

.    1  let
paddedDouble=
000123.456

.    2  let
oneMillion=
1_000_000

.    3  let
justOverOneMillion=
1_000_000.000_000_1

 

Numeric Type Conversion

使用Int类型的代码中的全部通用的整型常量和变量,即使它们是已知的非负。在日常生活中使用默认的整数类型是指整型常量和变量是在代码中直接互操作,并将匹配的类型判断为整数文字值。

仅使用时,特别须要他们手头的任务,其它整数类型,由于从外部来源明白大小的数据,或者对性能,内存使用情况,或其它必要的优化。在这些情况下使用显式大小的类型,能够捕捉不论什么意外溢出值和隐式记录所使用的数据的性质。

Integer Conversion

能够存储在一个整数常量或变量数的范围是不同的每一个数值类型。一个INT8常量或变量能够存储数-128到127之间,而一个UINT8常量或变量能够存储0到255之间的数字。一个数字,将不会放入一个大小的整数类型的常量或变量被报告为错误时你的代码被编译:

.    1  let
cannotBeNegative:
UInt8 = -1

.    2  // UInt8 cannot store negative numbers, andso this will report an error

.    3  let
tooBig: Int8
= Int8.max
+ 1

.    4  // Int8 cannot store a number larger thanits maximum value,

.    5  // and so this will also report an error

由于每一个数字类型能够存储不同的值的范围,你必须选择添?在逐案基础上数值类型的转换。这样的选择适用的做法能够防止隐藏的转换错误,并帮助作出明白在你的代码的类型转换意图。

要转换一个特定的数字类型到还有一个,你初始化与现有值所需类型的新号码。在以下的样例中,恒定twoThousand是类型UInt16的的,而常数1是类型UINT8的。它们不能被一起直接添?的,由于它们是同样类型的不。相反,该??演示样例调用UInt16的(一个)来创建一个变量的值初始化的新UInt16的,而且使用这个值来取代原来的:

.    1  let
twoThousand:
UInt16 = 2_000

.    2  let
one: UInt8
= 1

.    3  let
twoThousandAndOne=
twoThousand + UInt16(one)

由于添加?了两方都类型UInt16的眼下,除了是同意的。输出常数(twoThousandAndOne)判断为类型UInt16的,由于它是两个UInt16的值的总和。

个SomeType(ofInitialValue)是默认的方式来调用雨燕类型的初始化,并传递一个初始值。在幕后,UInt16的有一个接受UINT8值的初始值设定项,因此这个初始化用于从现有UINT8作出新的UInt16的。你不能传递不论什么类型的这里,可是,它必须是一个类型的UInt16的提供了一个初始化。扩展现有类型,规定接受新的类型(包含你自己的类型定义)是覆盖在扩展初始化。

Integer and Floating-Point Conversion

.    1  let
three = 3

.    2  let
pointOneFourOneFiveNine=
0.14159

.    3  let
pi = Double(three) +pointOneFourOneFiveNine

.    4  // pi equals 3.14159, and is inferred to beof type Double

这里,常数3的值被用来创建Double类型的新值,从而使除了两側是同样类型的。假设没有这个转换到位,另外也不会被同意。

反过来也是如此浮点到整数的转换,在一个整数类型能够用double或float值进行初始化:

.    1  let
integerPi=
Int(pi)

.    2  // integerPi equals 3, and is inferred tobe of type Int

当用于以这样的方式初始化一个新的整数值的浮点值总是被截断。这意味着,4.75变为4,和-3.9变得-3。

Type Aliases

类型别名为现有类型定义的替代名称。您能够定义类型别名与TYPEALIASkeyword。当你想用的名称是上下文更适合于指现有类型类型别名是实用的,

与来自外部源的特定大小的数据时,如

typealias AudioSample
= UInt16

一旦你定义了一个类型别名,你能够使用别名的不论什么地方你可能会使用原来的名称:

.    1  var
maxAmplitudeFound=
AudioSample.min

.    2  // maxAmplitudeFound is now 0

这里,AudioSample被定义为一个别名UInt16的。由于它是一个别名,调用AudioSample.min实际上是调用UInt16.min,这对于maxAmplitudeFound变量提供初始值0。

Swift--基本数据类型(一)

时间: 2024-11-05 23:47:48

Swift--基本数据类型(一)的相关文章

swift基本数据类型的使用

// // ViewController.swift // 基本数据类型 // // Created by 叶炯 on 16/9/8. // Copyright © 2016年 叶炯. All rights reserved. // import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // let //常量 // var //变量 // //

Swift基础数据类型和循环

本文是一篇swift的基础教材,讲解了swift语言的变量,数据类型和循环.准备学swift的同学可以参考学习下. 1 常量变量 var myVariable = 42 //变量       myVariable = 50       let myConstant = 42 //常量 2 显示指明变量类型 let explicitDouble: Double = 70 3 数组和字典 var shoppingList = ["catfish", "water", &

Swift基本数据类型_01_Var_let

//: Playground - noun: a place where people can play //简洁的方式来包含框架,直接写框架名称 import UIKit //var str = "Hello, playground" //println(); //swift1.0中使用此函数来打印 print("hello world") //swift2.0打印方式 //1.与OC的区别 /* /* (1)语句后面不需要加: (2)注释可以嵌套,即多行注释中可

Swift基础数据类型

常量和变量 常量和变量由一个特定名称来表示,如maximumNumberOfLoginAttempt 或者 welcomeMessage.常量所指向的是一个特定类型的值,如数字10或者字符”hello”.变量的值可以根据需要不断修改,而常量的值是不能够被二次修改的. 常量和变量的声明 常量和变量在使用前都需要声明,在Swift中使用let关键词来声明一个常量,var关键词声明一个变量.如下面例子 let maximumNumberOfLoginAttempts = 10 var currentL

Swift学习—数据类型

知识点: 指定常量\变量的数据类型 Swift严格要求变量在使用之前必须进行初始化 最值:可以使用min和max方法获得最值 范围:数值超出存储范围Swift会报错 类型不同的两个变量不能相加 数字格式:可以增加零(0)或者下划线(_)增强可读性 类型转换 Swift中使用typealias关键字定义类型的别名,跟C中的typedef作用类似 示例代码: //: Playground - noun: a place where people can play import UIKit // Sw

swift基本数据类型

1 // Playground - noun: a place where people can play 2 3 import UIKit 4 //----------------------------------------------------------------------- 5 //1.字符串输出 6 var str = "world" 7 println("hello, \(str)") 8 9 //-----------------------

swift -基本数据类型的定义与使用

// // main.swift // swift-02 // import Foundation //Foundation 基础库包 //没有main函数 //这个函数的作用就是打印信息 //这里可以不用加; //lua语言 // println("Hello, World!") //变量定义 定义了一个变量 //int a;变量定义以var开头,var开头就是声明一个变量,变量名需要写初始值 //变量名还可以再次赋值 //\()表示可以对()的内容做计算 var myVar = 0

swift 基本数据类型定义

infix operator & { associativity left precedence 150 } infix operator !== { associativity none precedence 130 } infix operator >= { associativity none precedence 130 } infix operator ~= { associativity none precedence 130 } infix operator < { as

Swift的数据类型

引用类型就是在赋值或给函数传递参数对的时候,把本身数据传递过去,这样在函数的调用过程中,会影响原始数据,类属于引用类型 1.整型: Int8:有符号8位整型: Int16:有符号16位整型 Int32: Int64: Int:平台相关有符号整型 UInt8:无符号8位整型 UInt16:无符号16位整型 UInt32: UInt64: UInt:平台相关无符号整型 2.浮点型 float: Double: 数字的表示方式: 为一个整数变量赋值十进制,二进制,十六进制,他们的表示方式如下, (1)

SWIFT——元组数据类型(tuples)

文章为自己学习所用,系转载.为学习51cto课程的笔记.如有侵权,请私信本人进行删除. 链接如下. ?http://edu.51cto.com/roadmap/view/id-58.html 1.元组常量/变量的定义 2.从元组数据中提取每一个元互不的值 3.为元组数据中的每一个元素命名 1 let product1 = (20, "iPhone6", 5888); 2 let product_name = "iPhone7" 3 var product2 = (3