您的位置:首页 > 移动开发 > Swift

Welcome to Swift (苹果官方Swift文档初译与注解七)---45~52页(第二章)

2014-06-10 21:52 183 查看
 Language Guide

(第二章 )

The Basics (简介)

  Swift是一门全新的iOS 和 OS X平台开发语言.Swift的许多部分与C和OC非常相似.

  Swift提供了C和OC的所有基础类型,int 整型,Double 和float 浮点型,Bool布尔类型,String字符数据.Swift也提供了强大的两种集合类型:Array和Dictionary.

  像C语言一样,Swift使用变量来存取具体值.Swift也扩展了常变量的用法.常量也比C语言更为强大.在Swift中,常量类型使得代码更加安全和清晰.

  另外,Swift中提供了OC中没有结构.这些包括元组(tuple),它允许你定义和传递一组值,元组可以允许从一个函数中返回多个值作为一个整体.

  Swift还提供了可选类型,它是一种值的抽象. 可选类型是指:要么有值,它等于X,要么根本没有值.可选类型与OC中的nil指针有些相似,但是它们对应的类型有所不同.不局限在类.可选  类型比OC中的nil指针更加安全和便捷,它是Swift强大特性的精华之一.

  可选类型是Swift属于类型安全 语言的一个例证.Swift帮助你明确你要处理的值的类型.如果你希望是一个String类型的值,类型安全机制在你把它i当做nt类型时报错.这可以帮助你在开  发中尽早的查到并修正许多错误.

Constants and Variables (常量和变量)

  常量和变量都有一个名称(比如maximumNumberOfLoginAttempts 或者welcomeMessage)和一个某种类型的值(比如数值10或者字符串”Hello”).常量的值一旦创建就不允许改   变.但是变量可以设置不同的值.

Declaring Constants and Variables (定义常量和变量)

  常量和变量在使用之前,必须进行声明.常量的声明使用关键字let,变量的定义使用关键字var.这有个代码样例,演示常量和变量怎样用来处理一个用户尝试登录的次数:

  let maximumNumberOfLoginAttempts = 10

  var currentLoginAttempt = 0

  这段代码的含义是:

  “声明一个新的常量,名字为 maximumNumberOfLoginAttempts,并给它赋一个值为10,然后声明一个新的变量,名字为 currentLoginAttempt 再给这个变量一个初始值0”

  在这段代码中,允许尝试登录的次数的最大值声明为一个常量,因为这个最大值永远都不会改变.用户当前尝试登录的计数声明为一个变量,是因为用户每次登录错误后这个值都会增加.

  你可以在一行代码中定义多个常量或者多个变量,使用逗号(,)来分隔它们.

  var x = 0.0, y = 0.0, z = 0.0

  NOTE // 注意点

  If a stored value in your code is not going to change, always declare it as a constant with the let keyword. Use variables only for storing values that need to be able to     change. // 如果保存一个不会改变的值,就把它定义为常量;保存一个需要改变的值,使用变量.

Type Annotations (类型声明)

  在定义一个常量或者变量的时候,可以进行类型声明,更加明确常量或者变量保存那种类型的值.类型声明是在常量名或者变量名后面加一个冒号(:),然后再空格,再加类型的的名称.

  这段代码给变量welcomeMessage进行了类型声明,明确这个变量可以保存String类型的值.

  var welcomeMessage: String

  冒号(:)的含义是”...的类型是....”,因此上面的代码可以理解为:

    “定义一个名字为 welcomeMessage变量,它是String类型”

  String类型意味着可以保存任意String类型的值.

  变量welcomeMessage 现在可以被设置为任何String值而不会报错:

    welcomeMessage = "Hello"

  注意点:

  实际上,你几乎不需要进行类型声明,如果你在定义常量或者变量时候就对它们进行了初始赋值,Swift总是可以确定常量或者变量的类型(就像在类型安全和类型参考中描述的一样),在  上面的代码里,welcomeMessage没有初始赋值,因此变量welcomeMessage特定进行了类型声明而不是从一个初始值信息来获得类型.

Naming Constants and Variables (命名常量和变量)

  你几乎可以使用任何你喜欢的字符来给常量和变量进行命名,甚至包括Unicode字符:

  let π = 3.14159

  let 你好 = "你好世界"

  let 🐶🐮 = "dogcow”

  常量和变量的名字不能包含数学运算符,剪头符号,保留(或非法)的Unicode字符,中横线-,制表符.也不能以数字开始.

  一旦你定义好了一个某种类型的常量或者变量,就不可以再次重复定义,或者改变数据类型.不可以把一个常量改成变量,反之亦然.

  注意点

  如果你给一个常量或者变量命名与Swift保留的关键字相同,你可以将这个关键字括在(`)中,但是你应该尽量避免这样,除非你真的别无选择.

  你可以修改一个已经存在的变量的值,在下面的例子中,变量friendlyWelcome的值被从”Hello”修改为”Bonjour!”:

  var friendlyWelcome = "Hello!

  friendlyWelcome = "Bonjour!"

  // friendlyWelcome 现在的值为 "Bonjour!"

  与变量不同,常量的值一旦设置就不允许修改.试图修改一个常量,编译器会报错:

  let languageName = "Swift"

  languageName = "Swift++"

  // 会报一个编译时错误 - languageName cannot be changed (languageName不能被修改)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐