没有合适的资源?快使用搜索试试~ 我知道了~
Swift 初见 通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”。在 Swift 中,可以用一行代码实现: print("Hello, world!") 如果你写过 C 或者 Objective-C 代码,那你应该很熟悉这种形式——在 Swift 中,这行代码就是一个完整的程序。你不需要为了输入输出或者字符串处理导入一个单独的库。全局作用域中的代码会被自动当做程序的入口点,所以你也不需要 main() 函数。你同样不需要在每个语句结尾写上分号。 这个教程会通过一系列编程例子来让你对 Swift 有初步了解,如果你有什么不理解的地方也不用担心——任何本章介绍的内容都会在后面的章节中详细讲解到。 注意 最好的体验是把这一章作为 Playground 文件在 Xcode 中打开。 Playgrounds 允许你可以编辑代码并立刻看到输出结果。 下载 Playground 简单值 使用 let 来声明常量,使用 var 来声明变量。一个常量的值,在编译的时候,并不需要有明确的值,但是你只能为它赋值一次。这说明你可以用一个常量来命名一个值,一次赋值
资源推荐
资源详情
资源评论
Swift 初见
通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”。在
Swift 中,可以用一行代码实现:
print("Hello, world!")
如果你写过 C 或者 Objective-C 代码,那你应该很熟悉这种形式——在 Swift 中,
这行代码就是一个完整的程序。你不需要为了输入输出或者字符串处理导入一个
单独的库。全局作用域中的代码会被自动当做程序的入口点,所以你也不需要
main() 函数。你同样不需要在每个语句结尾写上分号。
这个教程会通过一系列编程例子来让你对 Swift 有初步了解,如果你有什么不理
解的地方也不用担心——任何本章介绍的内容都会在后面的章节中详细讲解到。
注意
最好的体验是把这一章作为 Playground 文件在 Xcode 中打开。
Playgrounds 允许你可以编辑代码并立刻看到输出结果。
下载 Playground
简单值
使用 let 来声明常量,使用 var 来声明变量。一个常量的值,在编译的时候,并不
需要有明确的值,但是你只能为它赋值一次。这说明你可以用一个常量来命名一
个值,一次赋值就可在多个地方使用。
var myVariable = 42
myVariable = 50
let myConstant = 42
常量或者变量的类型必须和你赋给它们的值一样。然而,你不用明确地声明类型。
当你通过一个值来声明变量和常量时,编译器会自动推断其类型。在上面的例子
中,编译器推断出 myVariable 是一个整数类型,因为它的初始值是整数。
如果初始值没有提供足够的信息(或者没有初始值),那你需要在变量后面声明
类型,用冒号分割。
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
练习
创建一个常量,显式指定类型为 Float 并指定初始值为 4。
值永远不会被隐式转换为其他类型。如果你需要把一个值转换成其他类型,请显
式转换。
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
练习
删除最后一行中的 String,错误提示是什么?
有一种更简单的把值转换成字符串的方法:把值写到括号中,并且在括号之前写
一个反斜杠(\)。例如:
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
练习
使用 \() 来把一个浮点计算转换成字符串,并加上某人的名字,
和他打个招呼。
使用三个双引号(""")来包含多行字符串内容。每行行首的缩进会被去除,只要
和结尾引号的缩进相匹配。举个例子:
let quotation = """
I said "I have \(apples) apples."
And then I said "I have \(apples + oranges) pieces of fruit."
"""
使用方括号 [] 来创建数组和字典,并使用下标或者键(key)来访问元素。最后
一个元素后面允许有个逗号。
var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"
数组在添加元素时会自动变大。
shoppingList.append("blue paint")
print(shoppingList)
使用初始化语法来创建一个空数组或者空字典。
let emptyArray: [String] = []
let emptyDictionary: [String: Float] = [:]
如果类型信息可以被推断出来,你可以用 [] 和 [:] 来创建空数组和空字典——比如,
在给变量赋新值或者给函数传参数的时候。
shoppingList = []
occupations = [:]
控制流
使用 if 和 switch 来进行条件操作,使用 for-in、while 和 repeat-while 来进行循环。包
裹条件和循环变量的括号可以省略,但是语句体的大括号是必须的。
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
print(teamScore)
在 if 语句中,条件必须是一个布尔表达式——这意味着像 if score { ... } 这样的代码
将报错,而不会隐形地与 0 做对比。
你可以一起使用 if 和 let 一起来处理值缺失的情况。这些值可由可选值来代表。
一个可选的值是一个具体的值或者是 nil 以表示值缺失。在类型后面加一个问号
(?)来标记这个变量的值是可选的。
var optionalString: String? = "Hello"
print(optionalString == nil)
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
练习
把 optionalName 改成 nil,greeting 会是什么?添加一个
else 语句,当 optionalName 是 nil 时给 greeting 赋一个
不同的值。
如果变量的可选值是 nil,条件会判断为 false,大括号中的代码会被跳过。如果不
是 nil,会将值解包并赋给 let 后面的常量,这样代码块中就可以使用这个值了。
另一种处理可选值的方法是通过使用 ?? 操作符来提供一个默认值。如果可选值
缺失的话,可以使用默认值来代替。
let nickName: String? = nil
let fullName: String = "John Appleseed"
let informalGreeting = "Hi \(nickName ?? fullName)"
switch 支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
print("Is it a spicy \(x)?")
default:
print("Everything tastes good in soup.")
}
练习
删除 default 语句,看看会有什么错误?
注意 let 在上述例子的等式中是如何使用的,它将匹配等式的值赋给常量 x。
运行 switch 中匹配到的 case 语句之后,程序会退出 switch 语句,并不会继续向下
运行,所以不需要在每个子句结尾写 break。
你可以使用 for-in 来遍历字典,需要一对儿变量来表示每个键值对。字典是一个
无序的集合,所以他们的键和值以任意顺序迭代结束。
剩余18页未读,继续阅读
资源评论
xiaoshun007~
- 粉丝: 3777
- 资源: 3146
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功