[IOS]《A Swift Tour》翻译(一)

以下翻译内容为原创,转载请注明:

来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3768936.html

碎碎念。。。

Swift是苹果在WWDC刚发布的新语言,本人也没学过,现在看苹果官方文档一边翻译一边学习,再加上英语水平和对编程理解很有限,有错误的地方请大家指出,翻译只供参考,建议阅读苹果Swift官方的文档

Swift 之旅

按照传统,在开始学习一门新的语言时写的第一个程序应该是在屏幕上打印“Hello,
World”,这个可以用一行来完成:

print(“Hello, world”)

如果你有写过C或者Objective-C的经验,这个语法你应该会感觉很熟悉——在Swift中,这行代码就是一个完整的程序。你不需要像输入输出流或者字符串处理等那样去导入另外的具有功能性的库。在全局范围编写的代码即是程序的入口点,所以你不需要一个main方法。你也不需要在每个语句后面写上分号。

这个旅程会带给你足够的信息让你用Swift来完成各种编程任务。不用担心你是否懂得一些编程——这本书对各个方面都进行来详细的介绍。

基本数据

使用let来表示一个常量,使用var来表示一个变量。常量的值不需要在编译时期被知道,但是你必须且只能一次分配一个值给它。这表示你一旦给这个常量分配了一个值,你就能在很多地方使用它了。

var myVariable = 42;

myVariable = 50;

let myConstant = 42;

一个常量或者变量的类型必须要跟你分配给它的值的类型一致。然而,你一般不需要精确的写明它的类型。当你创建了一个常量或者变量,并赋值后,编译器会自动推断出它的类型。比如在上面的例子中,编译器会推断出myVariable是一个integer,因为它的初始值就是一个integer。

如果初始值不能提供足够的信息(或者它根本没有初始值),可以在这个变量后面加上冒号,然后写上指定类型。

let implicitInteger = 70

let implicitDouble = 70.0

let explicitDouble: Double = 70

值不会隐式地被转换成另一种类型。如果你需要转换成一个不同类型的值,显示地生成一个期望类型的实例。

let label = “The width is ”

let width = 94

let widthLabel = label + String(width)

还有一个更简单的方法,在字符串中包含变量值:写一对括号里面写一个变量值,然后在括号前面写一个反斜杠,举个例子:

let apples = 3

let oranges = 5

let appleSummary = “I have \(apples)
apples.”

let fruitSummary = “I have \(apples + oranges)
pieces of fruit.”

使用中括号([])来创建一个数组或者字典,使用index(索引)或者key(键)访问他们的某一项。

var shoppingList = [“catfish”, “water”, “tulips”,
“blue paint”]

shoppingList[1] = “bottle of water”

var occupations = [

“Malcolm”: “Captain”,

“Kaylee”: “Mechanic”,

]

occupations[“Jayne”] = “Public
Relations”

使用初始化器的语法来创建一个空的数组或者字典。

let emptyArray = String[]()

let emptyDictionary = Dictionary<String,
Float>()

如果类型信息是可推断的,你可以使用[]创建一个空的数组,使用[:]来创建一个空的字典,举个例子,当你设置一个新的值或者往方法中传入一个变量作为参数

shoppingList = []

控制语句

使用if和switch来创建一个条件,使用for-in,for,while和do-while来创建一个循环。

条件和循环变量上的括号是可选的。if后面大括号和循环体的大括号是必须的。

let individualScores = [75, 43, 103, 87,
12]

var teamScore = 0

for score in individualScores{

if score > 50{

teamScore += 3

}else{

teamScore += 1

}

}

teamScore

在一个if语句中,条件必须是一个布尔类型的表达式——这表示像if score { …
}这样的代码是错误的,这个score并不是隐式地去跟0比较。

你可以在值可能为空的时候同时使用if和let。这些值就被表示为可选地。一个可选的值可能包含一个值或者包含一个nil,nil表示这个值是空。在这个值的类型后面写上一个疑问符号(?)可以把这个值标记为可选的。

var optionalString: String? = “Hello”

optionalString == nil

var optionalName: String? = “John
Appleseed”

var greeting = “Hello!”

if let name = optionalName{

greeting = “Hello, \(name)”

}

如果可选值是nil,那么这个条件就为false,大括号中代码就会跳过。否则,可选值执行后面代码块中的代码并分配给let后面的常数。

Switches支持各种数据和各种各样的比较操作——它们不局限于integers和相等式的比较。

let vegetable = “red pepper”

switch vegetable{

case “celery”:

let vegetableComment = “Add some raisins and make
ants on a log.”

case “cucumber”, “watercress”:

let vegetableComment = “That would make a good
tea sandwich.”

case let x where
x.hasSuffix(“pepper”):

let vegetableComment = “Is it a spicy
\(x)?”

default:

let vegetableComment = “Everything tastes good in
soup.”

}

在匹配的case中执行完代码后,程序退出switch语句。执行不会在下一个case中继续,所以不需要显示的在每个cases中的最后依次写上跳出该switch的break语句。

你可以使用for-in语句来迭代键值对形式的字典中的所有items。

let interestingNumbers = [

“Prime”: [2, 3, 5, 7, 11, 13],

“Fibonacci”: [1, 1, 2, 3, 5, 8],

“Square”: [1, 4, 9, 16, 25],

]

var largest = 0

for(kind, numbers) in
interestingNumbers{

for number in numbers{

if number > largest{

largest = number

}

}

}

largest

使用while来重复代码块中的代码,直到条件改变。循环条件也可以放在最后,可以确保这个循环至少执行一次。

var n = 2

while n < 100{

n = n * 2

}

n

var m = 2

do{

m = m * 2

} while m < 100

m

你可以在循环中保持一个索引index——通过使用..来限定一个索引范围或者指明初始值,条件和增量。下面两个结果一样的循环:

var firstForLoop = 0

for i in 0..3{

firstForLoop += i

}

firstForLoop

var secondForLoop = 0

for var i = 0; i < 3; ++i{

secondForLoop += 1

}

secondForLoop

使用..来限定范围会省略范围的上限值,使用...来限定范围会包含所有限定值。(译者注:..是左闭右开整数区间,…是左闭右闭整数区间)

[IOS]《A Swift Tour》翻译(一),布布扣,bubuko.com

时间: 2024-10-12 18:03:29

[IOS]《A Swift Tour》翻译(一)的相关文章

1.Swift教程翻译系列——关于Swift

英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 我本来是做JAVA的.可是有一颗折腾的心,苹果公布Swift以后就下载了苹果的开发文档.啃了几天.朦朦胧胧的看了个几乎相同,想静下心看能不能整个翻译出来.我英语一般般,仅仅是大致能看明确意思,非常多形容词不晓得该怎么说.希望众大神看到不合适的地方能指正.以下是第一篇,About Swift. 这篇最难翻译了. Swift是一种新的用于iOS和OS X应用开发的编程语言Swift

A Swift Tour(4) - Objects and Classes

Objects and Classes(对象和类) 用 class 关键字后面跟一个类名来创建一个class,在一个类中声明 常亮或变量,他存在于当前类的上下文,函数的方法是同样的 var numberOfSides = 0 let numberOfSidesLet = 1 func simpleDescription() -> String { return "A shape with \(numberOfSides) \(numberOfSidesLet) sides." }

[book] iOS 8 Swift Programming Cookbook

iOS 8 Swift Programming Cookbook 资源地址 http://pan.baidu.com/s/1c0hn1Gc 书籍介绍 源码截图 书籍截图

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) 变量&amp;常量&amp;元组

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

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

Swift学习——A Swift Tour 枚举和结构体

Enumerations and Structures Enumerations   枚举的使用 使用 enum 定义一个枚举,枚举里面可以关联方法,比如下文中的描述方法 enum Rank: Int { case Ace = 1 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten case Jack, Queen, King func simpleDescription() -> String { switch self { ca

ios的swift 与Object-c之后使用的一些变化

首先比较一下,把ViewController当作导航的根试图控制器, Object-c的方法 SZMyViewController *mVC = [[SZMyViewControlleralloc] init]; UINavigationController *nav = [[UINavigationControlleralloc] initWithRootViewController:mVC]; self.window.rootViewController = nav; swift的方法 va

iOS 8 Swift Programming Cookbook

Book Description "About a year ago, noticing that Apple had not updated Objective-C much over the past few years, I got intimations that they were working on a new language or framework for iOS development, and even suggested it to my friends at work