简单学

1、我的第一个Swift程序

传统表明,用新语言编写的第一个程序应该在屏幕上打印“Hello,world!”。在Swift中,这可以在一行中完成:

在Swift中,这行代码是一个完整的程序。您不需要为输入/输出或字符串处理等功能导入单独的库。在全局范围编写的代码被用作程序的入口点,所以你不需要一个main()函数。您也不需要在每个语句的末尾都写分号。

2、常量和变量

使用let做一个常数,var是一个变量。在编译时不需要知道常量的值,但必须为其赋值一次。这意味着您可以使用常量来命名一次您确定一次但在许多地方使用的值。

常量或变量必须与要分配给它的值具有相同的类型。但是,您并不总是必须明确地写出类型。在创建常量或变量时提供值可让编译器推断其类型。在上面的例子中,编译器推断这myVariable是一个整数,因为它的初始值是一个整数。

如果初始值没有提供足够的信息(或者没有初始值),请在变量之后写入,并用冒号分隔来指定类型。

3、值类型

值永远不会被隐式转换为另一种类型。如果您需要将值转换为其他类型,请显式创建所需类型的实例。

4、在字符串中包含值的方法更为简单:将值写入括号中,并在括号\之前写入反斜杠()。

"""对于占用多行的字符串 使用三个双引号()。只要符合收尾引号的缩进,每个引用行开头的缩进就会被删除。

5、数组和字典

创建一个空数组或字典,请使用初始化程序语法。

  1. let emptyArray = [String]()
  2. let emptyDictionary = [String:Float]()

使用括号([])创建数组和字典,并通过将括号中的索引或键写入它们来访问它们的元素。在最后一个元素之后允许逗号。

控制流

1、使用ifswitch制作条件语句 , 使用forinwhilerepeatwhile进行循环。 条件或循环变量的括号是可选的。身体周围的括号是必需的。

if声明中,条件必须是一个布尔表达式 - 这意味着代码如if score { ... }错误,而不是隐式比较为零。

2、可选值

使用iflet一起使用表示可能缺失的值。这些值表示为可选项。可选值包含值或包含nil以指示缺少值。在值的类型后面写一个问号?()以将该值标记为可选。

处理可选值的另一种方法是使用??运算符提供默认值。如果可选值缺失,则使用默认值。

  1. let nickName:String? = nil
  2. let fullName:String = "John Appleseed"
  3. let informalGreeting = "Hi \(nickName ??fullName)"

3、交换机支持任何种类的数据和各种比较操作 - 它们不限于整数和相等性测试。

请注意,如何在let模式中使用将与之模式匹配的值分配给常量。

在匹配的switch case内部执行代码后,程序从switch语句中退出。执行不会延续到下一个案例,因此不需要在每个案例的代码末尾显式地跳出交换机。

4、字典中的for-in

forin通过提供一对用于每个键值对的名称来迭代字典中的项目。字典是无序集合,所以它们的键和值以任意顺序迭代。

使用while重复的代码块,直到完成变化。循环的条件可以在最后,确保循环至少运行一次。

功能和关闭

1、函数的声明和使用

使用func声明函数。通过使用括号中的参数列表跟随其名称来调用函数。用  -> 从函数的返回类型中分离参数名称和类型。

默认情况下,函数使用它们的参数名称作为其参数的标签。在参数名称之前写入自定义参数标签,或写入 以使用不带参数标签。

2、函数与元组

使用一个元组来创建一个复合值 - 例如,从一个函数返回多个值。元组的元素可以通过名字或数字来引用。

3、函数的嵌套

函数可以嵌套。嵌套函数可以访问在外部函数中声明的变量。您可以使用嵌套函数来组织长或复杂函数中的代码。

一个函数可以返回另一个函数作为它的值。

函数可以将另一个函数作为其参数之一。

4、函数与闭包

函数实际上是闭包的一个特例:可以稍后调用的代码块。闭包中的代码可以访问变量和函数,这些变量和函数可以在创建闭包的范围中使用,即使闭包在执行时处于不同的范围 - 您已经看到一个嵌套函数的例子。你可以使用花括号({})来编写一个没有名字的闭包。用于in从正文中分离参数和返回类型。

  1. numbers.map({ (number:Int) -> Int in
  2. let result = 3 * number
  3. return result
  4. })

可以更简洁地编写闭包的几个选项。当闭包的类型已知时,例如代理的回调,可以省略其参数的类型,其返回类型或两者。单语句闭包隐式返回其唯一语句的值。

  1. let mappedNumbers = numbers.map({number in 3 * number })
  2. print(mappedNumbers)

可以通过数字而不是名称来引用参数 - 这种方法在非常短的闭包中特别有用。作为函数的最后一个参数传递的闭包可以在括号之后立即出现。当闭包是函数的唯一参数时,可以完全省略括号。

  1. let sortedNumbers = numbers.sorted {$0 > $1 }
  2. print(sortedNumbers)

老司机带你快速熟悉Swift 4.1(一)相关推荐

  1. 老司机带你快速实现Python下载与安装

    目录 一.新手下载与安装Python的步骤: 二.老司机下载与安装Python的步骤: 先来看一下新手是怎么下载安装的: 一.新手下载与安装Python的步骤: 1.打开Python官网:https: ...

  2. Python老司机带你快速搞定日志分析工具

    标题说明一切,原文地址:jkklee/web_log_analyse,觉得文章不错请给原作者一个star哦~ 日志分析在web系统中故障排查.性能分析方面有着非常重要的作用.该工具的侧重点不是通常的P ...

  3. Flutter基础篇(2)-- 老司机用一篇博客带你快速熟悉Dart语法

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.jianshu.com/p/3d927a7bf020 转载请标明出处: https://www.jianshu.com/p/ ...

  4. 十年建站老司机带你十分钟搭建网站

    十年建站老司机带你十分钟搭建网站 本文概要: 1. 域名 + 域名注册 + 域名备案 + 域名解析绑定 2. 服务器 + 虚拟主机 + windows服务器 + linux服务器 3. CMS建站系统 ...

  5. 短视频+直播源码,直播老司机带你飞

    短视频+直播源码,直播老司机带你飞 脱胎于视频直播的短视频以近乎疯狂的速度攫取着互联网的流量,当抖音.快手的月活已经足够强大,他们又毫不犹豫地切入了直播腹地. 当互联网竞争进入下半场,依靠互联网人口. ...

  6. Java用map实现沁园春_QQ飞车:沁园春地图车神跑法,实力老司机带你了解这几个技巧...

    原标题:QQ飞车:沁园春地图车神跑法,实力老司机带你了解这几个技巧 QQ手游飞车上线以来收获了一大堆的迷妹迷弟,小编当然也是其中之一啦,小编在这里给大家带来最新的游戏资讯,和各种模式以及赛道的解说. ...

  7. 纵剑仙界一直显示连接服务器,纵剑仙界h5新手指引 老司机带你少走弯路

    纵剑仙界h5新手指引,老司机带你少走弯路.新手初来乍到,不知道该做什么怎么办?别怕!让小编来手把手教你玩转纵剑仙界! 在<纵剑仙界>手游中,等级是一个非常重要的因素.除了转生.装备高阶装备 ...

  8. 老司机带你从源码开始撸Spring生命周期!!!

    导读 Spring在Java Web方面有着举足轻重的地位,spring的源码设计更是被很多开发者所惊叹,巧妙的设计,精细的构思,都注定他的地位.今天陈某大言不惭的带你来从源码角度解析Spring的生 ...

  9. 老司机带你玩转SDL(一)

    老司机带你玩转SDL --第一站"缘由" 啦啦啦,啦啦啦 我是SDL的老司机 大厂小厂曾呆过 今天的内容真正好 带着大家把SDL玩转了 ---- 伴随着类似聂耳<卖报歌> ...

最新文章

  1. win2008 IIS7中启用JS的gzip压缩的方法
  2. [ACTF2020 新生赛]Upload
  3. BLE-NRF51822教程8-动态广播
  4. 分享一些面试中的经验和心得
  5. python配置日志的几种方式
  6. python实时监控文件大小_python实现实时监控文件的方法
  7. Intellij Idea: Thymeleaf 命名空间th报错
  8. 如何实现RTMP推送Android Camera2数据
  9. Linux系统间文件双向同步搭建Unison版
  10. How do I create 2D water with dynamic waves?
  11. 用python写一个彩票过滤器_37.Python自定义过滤器
  12. 【Java】Java 的Object对象你真的懂了吗
  13. Android图片选择器PhotoPicker
  14. Gluster-Heketi-Kubernetes 安装步骤(以DaemonSet形式安装) Ubuntu 16.04
  15. MapReduce中名字的通俗解释--故事会
  16. 基于opencv的图片人像移除
  17. 七大基本排序算法(升序排列)
  18. Elasticsearch(简称ES)实现日报表、月报表、年报表统计,没数据补0
  19. MySQL的TIMESTAMP数据类型
  20. 2021 ICPC Southeastern Europe Regional Contest Werewolves(树上背包)

热门文章

  1. python:查找兄弟单词
  2. 丁子高曝爱子长相似父母混合体 坦言:脸型像我
  3. Unity3D插件 AnyPortrait 2D骨骼动画制作
  4. 关于汽车隔音和音响改装,难听,但确是实话
  5. cad缩放_这个CAD缩放技巧太实用!
  6. 2021 || You Cannot Easily Catch Me: A Low-Detectable Adversarial Patch for Object Detectors
  7. 夏普电视能用鸿蒙吗,夏普电视怎么安装第三方软件,看电视直播教程
  8. 渣蜀黍 - iOS 个人笔记(一)_数据处理
  9. QQ群空间登录网址:http://qun.qq.com/air/#
  10. 从零到壹搭建一个商城架构--性能指标