使用Swift编程启动和运行

带有可选,函数和字符串的Swift简介

在本文中,您将学习Swift的以下基本知识:

  1. 可选,可选绑定,强制展开

2.功能

3.创建数组

4.创建字典,迭代操作

5.字符串运算

6.条件语句,Switch语句,if语句

介绍Swift

Swift是Apple开发的新编程语言。 如果您是一名Objective-C程序员,Swift将使您感到熟悉。 它遵循与Objective-C相同的方法名称和参数。 它还包括来自Objective-C的可可框架。 此外,Swift代码可以与Objective-C代码一起使用。 Swift代码更加简洁,执行速度更快且易于调试。 自从Swift引入以来,人们一直在谈论它,并且大多数人发现它易于适应并且更具表达力。 即使是具有数十年经验的Objective-C开发人员,也会发现它简单而直观。 它是如此简单却强大,以至于一段时间后您会感觉到它是第二自然。 Swift简洁,直观且执行速度更快。 最重要的是,它已被广泛采用,github上有成千上万个存储库,您可以在堆栈溢出时找到大多数问题的解决方案。

在进行快速编程之前,我希望您了解Apple引入的一种伟大工具,该工具仅用于学习和尝试这种新语言。 它被称为游乐场。 太好了,您不必担心创建项目或构建项目来编译代码了。 您可以直接尝试使用快速代码并立即查看结果。 这使学习体验更加有趣。 因此,我建议您使用Playground立即尝试和调整代码。 在学习概念的同时尝试自己编写代码是学习编程时最重要的事情。 正是这样才能保持创造力,创新和即兴创作的乐趣。

您不必单独下载或安装它。 您只需要Xcode。 安装Xcode并将其打开后,您将看到以下窗口

要创建一个Playground文件,请选择第一个选项,即Play入门。 您将被带到此窗口:

您可以在这里命名您的Playground文件,并选择iOS或OS X的平台。单击下一步时,系统将要求您选择Mac上的位置以保存项目。 根据您的方便选择,然后单击完成。 现在,您的Playground文件已准备就绪,可以进行编码了。

您将看到以下窗口:

这是一个普通的游乐场文件。 与您的Xcode项目中的类相似。 在左侧,您将看到一个包含字符串“ Hello,Playground”的变量。 在右侧,您会在该行上看到结果或变量的值。 您可以在运行时立即查看任何计算和运算的结果,如下图所示:-

那么,为什么还要浪费时间呢? 让代码!

因此,让我们从基础知识开始:

变数

快速创建变量

在这里,我们定义了一个变量“ myName”,使用var关键字,变量名和冒号“:”来完成此操作。 冒号后面是数据类型,在这种情况下,数据类型是StringString是Swift引入的新数据类型)。 我们为该变量分配一个字符串值“ Ashish”以进行初始化。

在Objective-c中,您可以这样做:

在Objective-C中创建一个变量

我们迅速用关键字’var’声明了任何类型的变量。 var也表示可变性,我将在后面进行解释。

语句结尾没有分号。 分号是快速可选的。

常数

创建变量是小菜一碟。 现在让我们看看如何声明常量。 假设您希望var’myName’为常量,则可以这样操作:

快速创建一个常量

是的,除了关键字let外,其他所有内容都是相同的。 swift中的关键字“ let”代表不变性。 因此,对于要保持不变的任何对象或值,只需使用关键字“ let”进行声明即可。

常量的更多示例:-

在Swift中指定数据类型

Swift非常喜欢不变性而不是可变性,以至于在swift 2.0(Xcode 7)中,如果变量实际上是常量,并且应该用’let’替换’var’,Compiler会发出警报。 这使代码在多任务环境中更加安全,因为它知道什么不会改变。

快速输入推断

Swift可以推断出变量或常量的数据类型。 这意味着您不必明确提及类型。 考虑以下示例:

Swift中的类型推断

这里我们没有为变量“ myName”指定任何数据类型,但代码仍然可以正常工作。 这样做的原因是很快会自动检测或推断字符串形式的“ Ashish”值的数据类型。

同样,

快速输入int和float的类型推断

在推断浮点数的类型时,Swift选择Double而不是Float。

注意:-您可以使用任何Unicode字符作为变量或常量名称。

例如,

 令π= 3.145927 

(在Mac上按alt + P可以输入unicode字符’ π ‘)。

这种类型推断使swift成为一种安全类型的语言。

Swift引入了一些新的数据类型,其中之一是String。 它会自动与NSString桥接并合并其所有属性。 因此,您可以在使用NSString的任何地方使用String。

例如,

快速进行数据类型转换

在这里,我们定义一个String并使用一个int对其进行初始化。 然后,我们使用NSString的intValue属性将其转换为Integer。

计算字符或字符串的长度:

快速计算字符串长度

您将得到答案为5。

考虑下面的字符串:

要访问特定索引处的字符,请使用属性startIndex,endIndex和函数predecessor(),successor()。

快速计算字符索引

在字符串范围之外的索引处访问字符将触发运行时错误。

字符串长度范围之外的字符访问索引

字符串插值

在字符串中使用变量

您还可以在字符串中使用它们时对值执行操作

更多字符串插值

连接字符串

连接字符串

在字符串中插入和删除字符

要将字符插入指定索引处的字符串中,请使用insert(_:atIndex 🙂方法。

在字符串中插入字符
 输出:-欢迎现在等于“哇!” 

要在指定的索引处插入另一个字符串的内容,请使用insertContentsOf(_:at 🙂方法。

快速插入字符串内容
 输出:-名称=“哇,真棒!” 

要从指定索引处的字符串中删除字符,请使用removeAtIndex(_ 🙂方法。

在Swift中删除角色

输出:-现在欢迎等于“哇,真棒”

在此处阅读有关String的更多信息

功能

以下函数采用三个参数firstName,lastName和它们之间的空格,并在加入它们后返回字符串

功能语法Swift

不允许更改s1的值,因为即使我们将变量类型的参数传递给函数,参数的类型也是let。

为了使s1可变,请将s1声明为var。

这就是我们使函数的参数可变的方式

调用函数

快速的函数调用

在这里,我们传递firstName,lastName和joiner String并将结果分配给新变量’name’

这说明了swift的简单明了的语法。

选装件

Swift引入了许多很棒的功能,其中之一是可选的。 在值可能存在或不存在的地方使用可选的。 这个概念在C或Objective-C中不存在。 在Objective-C中,如果函数返回缺少对象的对象,则它将返回nil。 所以我们需要用类似的方法来处理这种情况

if(object!= nil)或if(object)。 但这不适用于结构或枚举,在这种情况下,如果缺少值,我们将获得NSNotFound。

快速地,我们有一个可选的单一类型,它可以处理任何不存在或存在的数据类型。

可以通过放置’ 来声明Optional ‘在变量的数据类型后标记。

任择声明

其中name是“可选”,其中name的值可以为nil。 实际上,如果我们不使用值初始化name变量,它将自动设置为nil。

如果Optional的值表示它不是nil。

强制展开

要获得可选的选项,我们可以这样:-

在Swift中强制展开

这就像告诉编译器我知道变量中有一个值,然后将该值提供给我。 强制展开包含nil值的变量将产生运行时错误。

可选装订

要处理nil情况,请创建一个临时常量或变量,并将其分配为可选值。 然后检查const是否包含值,即不是nil。

上面的声明和’if’条件可以组合如下:

可选装订

此条件检查可选变量是否包含值,然后才执行块中的代码。 如果值存在,则将“名称”分配给“ aStr”。 这称为可选绑定。

在此处了解有关可选选项的更多信息

快速的条件语句

Swift使用条件语句进行了一些语法上的更改,以使其更易于使用。

让我们考虑一个if语句

如果Statement.swift

对于循环

//快速迭代数组

斯威夫特字典

创建字典

快速创建字典

遍历字典

 输出:-“ [Ashish,Akash,Prakash] \ n” 

切换语句

swift中的switch语句支持检查任何类型的值。 现在,Switch可以在任何条件下(仅可以与相等条件进行比较)在不同于Objective-C的情况下验证实现的案例。

切换Statement.swift

开关可以比较范围

尝试更改下面的数字值以测试案例

开关范围比较

开关可以用来比较元组。

尝试更改元组的值以测试案例

快速切换元组比较

与Switch绑定价值

Switch可以为临时变量或常量分配值,然后可以使用这些变量或常量来创建要评估的复杂条件语句。 此分配称为值绑定。

快速绑定价值

因此,您可以看到开关已迅速发展。 我相信您会发现它比Objective-C有用得多。 您可以在下面的评论中分享您认为使用switch有意义的所有用例。 如果可以进一步解释该主题,总是欢迎您分享与该主题相关的任何代码。

如果您喜欢我的帖子,可以在此处快速查看我的其他帖子。 您可以查看我的博客www.onestopsios.com。 再见,祝您编码愉快!