2.Swift Syntax Basics (字符串和变量)
参考官网的教程。
https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html
教程提供一个 Xcode 的 playground,可以边看教程边修改代码,同时预览结果,体验不错。
R:体验虽好,就是没有浏览器的字典插件可以用了,macOS 自带的词典也用不了,查词比较麻烦。
“Hello, world!”
print("Hello, world!") |
Swift 的语法看上去类似 C 和 Objective-C。对于 input/output 或者字符串处理来说,不需要 import 任何库。写在全局作用域的代码自动成为程序的入口,你不需要类似 main()
的函数。你也不需要给每行都写上一个分号。
Simple Values
使用 let
声明一个常量,使用 var
声明一个变量。
R:感觉和 JavaScript 有点冲突啊。JavaScript 中
var
、let
都用来声明变量,const
用来声明常量。
var myVariable = 42 |
变量类型根据指定的值推测。但是如果没有指派值,或者赋予的值不足以推测类型,则需要显示声明类型。
let implicitInteger = 70 |
变量的值不会进行任何隐式的类型转换。如果你需要对数据进行类型转换,你必须手动来转换它。
let label = "The width is " |
R:手动移除掉
String()
转换方法后,将得到报错:Binary operator '+' cannot be applied to operands of type 'String' and 'Int'
模版字符串,带入变量的方式为反斜杠 \
加括号。
let apples = 3 |
使用三引号声明多行的文本。
let quotation = """ |
用中括号创建数组或字典,在中括号中写上 index 或者 key 来访问元素。最后一个元素也可以写逗号。
var shoppingList = ["catfish", "water", "tulips"] |
R:“最后一个元素也可以写逗号”,和 JavaScript、JSON 挺像。
数组在添加元素时自动增长。
用下面初始化器语法创建一个空的数组或字典。
let emptyArray = [String]() |
当类型可以被推导时,可以省略类型声明。比如在给一个变量重新赋值时,或者传递一个参数给某个函数时。
shoppingList = [] |
R:给变量重新赋值时,之前的值会作为类型推导的信息。传递一个参数给某个函数时,函数接收的参数类型是确定的。所以这两种情况可以省略类型声明。