资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Swift语言教程基础数据类型基础类型虽然Swift是一个为开发iOS和OS X app设计的全新编程语言,但是Swift的很多特性还是跟C和Objective-C相似。Swift也提供了与C和Objective-C类似的基础数据类型,包括整形Int、浮点数Double和Float、布尔类型Bool以及字符串类型String。Swift还提供了两种更强大的基本集合数据类型,Array和Dictionary,更详细的内容可以参考:Collection Types。跟C语言一样,Swift使用特定的名称来定义和使用变量。同样,Swift中也可以定义常量,与C语言不同的是,Swift中的常量更加强大,在编程时使用常量能够让代码看起来更加安全和简洁。除了常见的数据类型之外,Swift还集成了Objective-C中所没有的“元组”类型,可以作为一个整体被传递。元组也可以成为一个函数的返回值,从而允许函数一次返回多个值。Swift还提供了可选类型,用来处理一些未知的不存在的值。可选类型的意思是:这个值要么存在,并且等于x,要么根本不存在。可选类型类似于Objective-C中指针的nil值,但是nil只对类(class)有用,而可选类型对所有的类型都可用,并且更安全。可选类型是大部分Swift新特性的核心。可选性类型只是Swift作为类型安全的编程语言的一个例子。Swift可以帮助你更快地发现编码中的类型错误。如果你的代码期望传递的参数类型是String的,那么类型安全就会防止你错误地传递一个Int值。这样就可以让编程人员在开发期更快地发现和修复问题。常量和变量常量和变量由一个特定名称来表示,如maximumNumberOfLoginAttempt 或者 welcomeMessage。常量所指向的是一个特定类型的值,如数字10或者字符”hello”。变量的值可以根据需要不断修改,而常量的值是不能够被二次修改的。常量和变量的声明常量和变量在使用前都需要声明,在Swift中使用let关键词来声明一个常量,var关键词声明一个变量。如下面例子let maximumNumberOfLoginAttempts = 10var currentLoginAttempt = 0以上代码可以理解为:声明一个叫maximumNumberOfLoginAttempts的值为10的常量。然后声明一个变量currentLoginAttempt初始值为0。在这个例子中,最大的登录尝试次数10是不变的,因此声明为常量。而已经登录的尝试次数是可变的,因此定义为变量。也可以在一行中声明多个变量或常量,用,号分隔:var x = 0.0, y = 0.0, z = 0.0注:如果一个值在之后的代码中不会再变化,应该用let关键词将它声明为常量。变量只用来存储会更改的值。类型注解在声明常量和变量时,可以使用注解来注明该变量或常量的类型。使用:号加空格加类型名在变量或常量名之后就可以完成类型注解。下面的例子就是声明了一个变量叫welcomeMessage,注解类型为字符串String:var welcomeMessage: String分号 “:” 在这的作用就像是在说:是类型的,因此上述代码可以理解为:声明一个叫welcomeMessage的变量,它的类型是String这个类型注解表明welcomeMessage变量能无误地存储任何字符串类型的值,比如welcomeMessage = “hello”注:实际编程中很少需要使用类型注解,定义常量或者变量的时候Swift已经根据初始化的值确定了类型信息。Swift几乎都可以隐式的确定变量或常量的类型,详见:Type Safety and Type Inference。而上面的welcomeMessage的例子中,初始化值没有被给出,所以更好的办法是指定welcomeMessage变量的类型而不是让Swift隐式推导类型。常量和变量的命名Swift中可以使用几乎任何字符来作为常量和变量名,包括Unicode,比如:let = 3.14159let 你好 = 你好世界let = dogcow但是名称中不能含有数学符号,箭头,无效的Unicode,横线-和制表符,且不能以数字开头,尽管数字可以包含在名称里。一旦完成了声明,就不能再次声明相同名称的变量或常量,或者改变它的类型。变量和常量也不能互换。注:如果你想用Swift保留字命名一个常量或者变量,你可以用 符号把命名包围起来。尽管如此,除非处于特别的意图,尽量不要使用保留字作为变量/常量名。可以改变变量的值为它声明的类型的其它值,如下的例子里,变量friendlyWelcome的值从“Hello!”被修改为”Bonjour!”:var friendlyWelcome = “hello!”friendlyWelcome = “Bonjour!”/ friendlyWelcome is now “Bonjour!”与变量不同的是,常量的值一旦确定就不能修改。如果想尝试改变一个常量的值,编译代码时就会报错let languageName = SwiftlanguageName = Swift+/ this is a compile-time error - languageName cannot be changed输出常量和变量Swift使用println来输出变量或者常量:println(friendlyWelcome)/ prints “Bonjour!”println是一个全局函数,用来输出一个值,最后输出一个换行。在Xcode中,println输出在控制台中。print函数也类似,只不过最后不会输出换行。println函数一般输出一个字符串println(This is a string)/ prints This is a stringprintln函数还可以格式化输出一些日志信息,就像是Cocoa中NSLog函数的行为一样,可以包括一些常量和变量本身。Swift在字符串中插入变量名作为占位符,使用反斜杠()来提示Swift替换变量/常量名为其实际的值,如:println(“The current value of friendlyWelcome is (friendlyWelcome)”) / prints “The current value of friendlyWelcome is Bonjour!”注:关于格式化字符的详见String Interpolation注释不参与编译的语句称为注释,注释可以提示你代码的意图。Swift中的注释和C语言中的一样,有单行注释/this is a comment和多行注释,使用/和/分隔/* this is also a comment,but written over multiple lines */和C语言不同的是,多行注释可以嵌套,你需要先开始一个多行注释,然后开始第二个多行注释,关闭注释的时候先关闭第二个,然后是第一个。如下/* this is the start of the first multiline comment/* this is the second, nested multiline comment */this is the end of the first multiline comment */这样可以方便地在大段已注释的代码块中继续添加注释分号和其它一些编程语言不同,Swift不需要使用分号 ; 来分隔每一个语句。当然你也可以选择使用分号,或者你想在一行中书写多个语句。let cat = ; println(cat)/ prints 整数整数就是像42和-23这样不带分数的数字,包括有符号(正数,负数,0)和无符号(正数,0)。Swift提供了8、16、32和64位的数字形式,和C语言类似,可以使用8位的无符号整数UInt8,或者32位的整数Int32.像其他Swift类型一样,这些类型名的首字母大写。整数边界使用min或max值来获取该类型的最大最小值,如:let minValue = UInt8.min / minValue is equal to 0, and is of type UInt8let maxValue = UInt8.max / maxValue is equal to 255, and is of type UInt81.2.这些值边界值区分了整数的类型(比如UInt8),所以可以像该类型的其他值一样被用在表达式中而不用考虑益处的问题。Int类型一般来说,编程人员在写代码时不需要选择整数的位数,Swift提供了一种额外的整数类型Int,是和当前机器环境的字长相同的整数位数在32位机器上,Int和Int32一样大小在64位机器上,Int和Int64一样大小除非你确实需要使用特定字长的正数,尽量使用Int类型。这保证了代码的可移植性。即使在32位的平台上,Int也可以存储-2,147,483,648 到2,147,483,647范围内的值,这对大部分正数来讲已经足够了。UInt类型Swift还提供了一种无符号类型UInt,同理也是和当前机器环境的字长相等。在32位机器上,UInt和UInt32一样大小在64位机器上,UInt和UInt64一样大小注:只有显式的需要指定一个长度跟机器字长相等的无符号数的时候才需要使用UInt,其他的情况,尽量使用Int,即使这个变量确定是无符号的。都使用Int保证了代码的可移植性,避免了不同数字类型之间的转换。详见Type Safety and Type Inference.5、浮点数浮点数就是像3.14159,0.1,-273.15这样带分数的数字。浮点数可以表达比Int范围更广(更大或更小)的数值。swift支持两种带符号浮点数类型:Double类型能表示64位的有符号浮点数。当需要表的数字非常大或者精度要求非常高的时候可以使用Double类型。Float类型能表示32为的有符号浮点数。当需要表达的数字不需要64位精度的时候可以使用Float类型。注 Double 至少有15位小数,Float至少有6位小数。合适的浮点数小数位数取决于你代码里需要处理的浮点数范围。6、类型安全和类型推导Swift是一种类型安全的语言。类型安全就是说在编程的时候需要弄清楚变量的类型。如果您的代码部分需要一个字符串,你不能错误地传递一个整数类型。因为Swift是类型安全的,它会在编译的时候就检查你的代码,任何类型不匹配时都会报错。这使得编程人员能够尽快捕获并尽可能早地在开发过程中修正错误。类型检查可以在使用不同类型的值时帮助避免错误。但是,这并不意味着你必须指定每一个常量和变量所声明的类型。如果不指定你需要的类型,Swift使用类型推导来指定出相应的类型。类型推导使编译器在编译的时候通过你提供的初始化值自动推导出特定的表达式的类型。类型推导使Swift比起C或Objective-C只需要更少的类型声明语句。常量和变量仍然显式类型,但大部分指定其类型的工作Swift已经为你完成了。当你声明一个常量或变量并给出初始值类型的时候,类型推导就显得特别有用。这通常是通过给所声明的常量或
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号