上一章Swift教程请查看:swift访问控制:public、internal和private
这一章我们介绍swift开发的第一个程序,并且进一步介绍swift变量、常量和字面量及其相关使用。
第一个swift程序:Hello World
下面我们将通过编写一个“Hello, World!”程序来深入了解Swift编程,你将学习一个工作的Swift程序的基本语法。
“Hello, World!”是一种计算机程序,通常用于用一个工作程序来说明一种编程语言的基本语法。
如果你想在你的电脑上运行这个程序,请确保正确安装了Swift和Xcode。
// Hello, World!
import Swift
print("Hello, World!")
以上程序的解释:
- // Hello, World!
在Swift中,任何以两个斜杠//开头的行都是注释,它们完全被编译器忽略,注释是为了让阅读代码的人更好地理解程序的意图和功能。
- import Swift
import关键字允许你访问框架中定义的所有符号,现在,只需记住在我们的程序中使用print(“Hello, World!”)需要这一行,你将在以后的教程中了解更多关于它的内容。
- print(“Hello, World !”)
上面这一行在Swift中称为函数,更具体地说,是一个打印函数。
在swift中,print表示“显示在屏幕上”,上面的代码在引号i中打印字符串,在后面的教程中,你将了解更多关于函数及其工作方式的内容。
在终端运行swift程序
打开终端
键入swift并按回车键,这将给你一个欢迎信息。
输入print(“Hello, World !”)
当你按下回车键,程序将会执行输出。
注意
- 如果你熟悉C、c++、Java等其他编程语言,则需要在每条语句的末尾添加分号(;)。但是,在Swift语句末尾添加分号“;”是可选的,也不推荐。如果需要在一行中添加多个语句,则必须在语句末尾包含“;”。
- 如果你愿意,你可以从你的程序中删除导入Swift这一行,因为它会自动包含在你的程序中。
- 如果你现在还不理解这里提及的一些概念,请不要担心,我们将在后面的教程中详细讨论它们。
什么是变量?
在程序设计中,变量用于在内存中存储数据,这些数据可以在整个程序中使用。每个变量必须有一个唯一的名称,称为标识符。将变量看作包含信息的容器是有帮助的,这些信息可以在以后进行更改。
从技术上讲,你可以把一个变量想象成一个袋子,里面装着一些书,这些书以后可以被其他的书代替。
如何在Swift中声明变量?
在Swift中,我们使用var关键字来声明一个变量。
例子:
var siteName:String
print(siteName)
我们已经声明了一个名为siteName的类型为String的变量,这意味着它只能保存字符串值。
如果你试图运行上面的代码,它会给我们一个编译时错误(变量在初始化之前使用),因为它不存储/包含任何值。
如何给Swift中的变量赋值?
可以使用赋值操作符(=)在变量中赋值。
例1:声明一个变量并为其赋值
var siteName:String
siteName = "Example.com"
print(siteName)
或者
你还可以将值内联赋为:
var siteName:String = "Example.com"
print(siteName)
变量siteName现在包含值“Example.com”。
由于Swift是一种类型推断语言,它可以自动推断(知道)“Example.com”是一个字符串,并将siteName声明为字符串。因此,你甚至可以从声明中删除type (:String),如下所示:
例2:Swift中的类型推断变量
var siteName = "Example.com"
print(siteName)
因为siteName是一个变量,你也可以通过简单的赋值操作符来改变它的值,但是不需要var关键字:
例3:更改变量的值
var siteName = "Example.com"
// 为siteName分配一个新值
siteName = "srcmini02.com"
print(siteName)
什么是常量?
常量是一种特殊类型的变量,其值不能改变。将常量看作容纳信息的容器是有帮助的,这些信息在以后是不能更改的。
从技术上讲,你可以把常量想象成一个袋子,用来储存一些书,而这些书一旦放在袋子里就不能被替换了。
如何在Swift中声明常量?
在Swift中,我们使用let关键字来声明一个变量。
例子:
let siteName:String
print(siteName)
我们已经声明了一个名为siteName的常量,其类型为String。
如果你尝试运行上面的代码,它将给我们一个编译时错误(初始化之前使用的常量),因为它不包含/持有任何值。
如何给Swift中的常数赋值?
可以使用赋值操作符(=)在与变量相同的常量中赋值。
例4:声明一个常量并为其赋值
let siteName:String
siteName = "Example.com"
print(siteName)
或者
你还可以将值内联赋为:
let siteName:String = "Example.com"
现在常量siteName包含/持有值“Example.com”。
与变量一样,你可以从声明中删除type (:String),如下所示:
例5:Swift中的类型推断常量
let siteName = "Example.com"
print(siteName)
但是不像变量,你不能改变常量的值,所以,你不能做某事
示例6:更改常量的值(不允许)
let siteName = "Example.com"
siteName = "srcmini02.com" // 运行时错误
print(siteName)
上面的语句给了我们一个错误,因为正如我们所说,一旦数据被存储,常量的值就不能被改变,这是变量和常量之间的关键区别。
什么是字面量?
字面量是直接出现在源代码中的值,它可以是数字、字符或字符串等,例如:“Hello, World”,12,23.0,“C”是字面量的简单例子。字面量通常用来初始化(赋值给)变量或常量。
例如:
let siteName = "Example.com"
在上面的表达式中,siteName是一个变量,而“Example.com”是一个文字。
Swift的字面量类型
整型字面量
它表示十进制、二进制、八进制或十六进制值,它有四种类型。
二进制字面值:代表二进制值,始于0 b。
八进制字面量:表示八进制值,从0开始。
十六进制字符:表示十六进制值,始于0 x。
十进制字面量:表示十进制值,在整数字面量中声明的所有内容的类型都是decimal。
例7:如何在Swift中使用整数字面量?
let binaryNumber = 0b11111111
print(binaryNumber)
print(1231)
在上面的程序中,有两个整数字面值0b11111111(二进制字面值)和1231(十进制字面值)。11111111的十进制值是255,因此print(binaryNumber)语句在屏幕上输出255。
类似地,print(1231)在控制台中输出十进制值255。
字符串和字符字面量
字符串字面量是由双引号包围的字符序列,字符字面量是由双引号包围的单个字符。
例8:在swift中如何使用字符串和字符字面量?
let someCharacter:Character = "C"
let someString:String = "Swift is great"
在上面的程序中,“C”是一个字符字面量,“Swift is great”是一个字符串字面量。
浮点字面量
它用于初始化数据类型为float和double的变量,它可以有两种类型:
小数:
它可以有一个可选的指数,由大写或小写e表
例9:如何在Swift中使用十进制字面量?
let someFloat = 12.23
let someAnotherFloat = 3.14e2
print(someFloat)
print(someAnotherFloat)
在上面的程序中,12.23和3.14e2是浮点字面量,3.14e2用指数表示,等于3.14 * 102。
十六进制:
十六进制浮点数必须有一个由大写或小写p表示的指数,对于exp为指数的十六进制数,底数乘以2exp:
例10:如何在Swift中使用十六进制字面量?
let someFloat = 0xFp10
let someAnotherFloat = 0xFp-12
print(someFloat)
print(someAnotherFloat)
在上面的程序中,0xFp10和0xFp-12是浮点数,0xFp10用指数表示,等于15*210 (F用十进制表示为15)。因此,print(someFloat)在屏幕中输出15360.0。
同样,0xFp-12等于15 * 2-12,因此,print(someAnotherFloat)在屏幕上输出0.003662109375。
布尔字面量
swift中有两个布尔字面量,他们是true和false。
例11:如何在Swift中使用布尔字面量?
let result:Bool = false
在上面的程序中,false是一个布尔字面量,它被赋给常量result。
变量和常量的规则和最佳实践
- 选择一个有意义的名字。例如,var name比var n更有意义。
- 使用camelCase符号声明变量或常量,驼峰大小写符号以小写字母开头。例如:
var studentName
let studentAge
let address
- 你还可以定义变量和常量而不需要标记它们,不标记名字意味着你不会在程序中使用它。在许多情况下,你需要创建一个未使用的变量,在这种情况下,你可以使用_作为占位符:
var _ = "Example.com" // 已初始化但未存储在变量中的字符串
let _ = "Example.com"
甚至这也是有效的:
_ = "Example.com"
- 如果你只需要设置一个值一次,并且在程序期间不需要再次更改它,那么可以使用常量。但是,如果你确实需要在以后更改它,请使用变量。
- 常量和变量名不能包含空格字符、数学符号、箭头、私有(或无效)Unicode代码点或行和箱形图字符。它们也不能以数字开头,尽管数字可能包含在名称的其他地方。
例如:
var 12 = "Example.com" // 编译错误: expected pattern
var @hello = “Hello” // 编译错误: expected pattern
评论前必须登录!
注册