swift编程入门(非常详细)从零基础入门到精通,看完这一篇就够了

2023-11-19

文章目录

      • 1. 读后概述
      • 2. 语法笔记
        • 2.1 说明
        • 2.2 基础类型
        • 2.3 运算符
        • 2.4 字符与字符串
        • 2.4 控制流
        • 2.5 函数
        • 2.6 闭包
        • 2.7 枚举、结构体、类
        • 2.8 类的构造与析构
        • 2.9 属性监听器
        • 2.10 类的继承
        • 2.11 扩展
        • 2.13 协议
        • 2.10 泛型
      • 3. 总结

1. 读后概述

阅读完《the swift programming language 中文版》,对swift语言有了初步的认识。在特点是:swift既是项目开发的编程语言,又有脚本语言的特点;在学习上:swift可以在xcode的playground进行编写,所见即所得,非常适合语法学习。
对于swift语言,个人认为就是"站在巨人的肩膀上"的一门语言,及众家之所长。只要熟悉一门主流的编程语言,学习swift的语法都不会太困难。swift和Java语言在某些语法和关键字上面甚是相似,因此在学习时困难不大。当然,对于熟悉C++的同学可以进行类比。
同时,swift是一门新生语言,大部分时代潮流技术也在其中,而且有自己独有的一些技巧在其中,非常值得学习。

2. 语法笔记

2.1 说明

编程语言都是相通的,因此对于基础的语法都是一样。下面主要是对不同的且重要的语法进行了做了笔记,对于已知或类似的语法没有进行细致的说明。

2.2 基础类型

1)变量与常量

swift用let定义常量,用var定义变量。对于数据类型则swift自行推断(类型推倒在C++中相当于auto这个类型占位符一样)。常量在设定后,将不能再更改它的值,变量则可以。

如果需要指定类型,则使用类型注解

var welcomeMessage: String
// 一般不需要写类型注解, 在声明常量或者变量的时候赋了一个初始值,Swift 可以推断出这个常量或者变量的类型

常量和变量名可以包含几乎所有的字符,包括 Unicode 字符:

let π = 3.14159
let 你好 = "你好世界"
let 									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

swift编程入门(非常详细)从零基础入门到精通,看完这一篇就够了 的相关文章

  • UITesting、XCTest 当前 ViewController 类

    简单的问题 我有一个按钮可以执行到下一个视图控制器的操作 我想写 UI XCTest 来告诉我它是否打开了我想要的视图控制器 UI 测试框架无法访问您的应用程序代码 这使得无法对实例进行类断言 你不能够directly告诉屏幕上的控制器的类
  • Swift:检查 UISearchBar.text 是否包含 url

    如何检查 UISearchBar text 是否包含 URL 我想做这样的事情 if searchBar text NSTextCheckingType Link 但我收到错误 String is not convertible to NS
  • 为什么在迭代字典时会出现“类型 [object] 的值没有成员 'lowercaseString'” 错误? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有几个对象 Struct object var title String var one object green v
  • 为 Swift 对象/属性设置观察者

    我一直在寻找一种在连接到 Mac 的显示器数量发生变化时触发方法的方法 我知道我可以获得 NSScreen screens count 的值 但我需要找到一种方法来在该值发生变化时创建通知或其他内容 或者指示所连接的显示器数量发生变化的其他
  • 调用 SwiftUI 中位置 #11、#12 处的额外参数 [重复]

    这个问题在这里已经有答案了 我在 SwiftUI 中的切换开关上不断收到 调用中位置 11 12 处有额外参数 错误 我见过其他人有 调用中的额外参数 错误 但答案似乎没有帮助 另外 我的错误是 位置 11 12 我还没有看到其他人发生这种
  • 以编程方式从底部裁剪图像

    我正在开发自定义相机应用程序 一切进展顺利 但我在从底部裁剪图像时遇到了问题 即 裁剪后的图像与原始图像具有完全相同的宽度 但高度将为原始图像的 1 3 并且必须从底部开始 斯威夫特3解决方案 func cropBottomImage im
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • 为什么我不能在 Realm 属性上使用 private

    我正在尝试在 RealmSwift 中存储一个枚举案例 但 Realm 不支持枚举 本文 https medium com it works locally persisting swift enumerations with realm
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • 如何在 Swift 中获取字典中最后输入的值?

    如何获取 Swift 字典中最后输入的值 例如 我如何从下面获取值 CCC var dictionary Dictionary
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • Swift 中的 UIAlert 自动消失?

    我有以下代码 Creates Alerts on screen for user func notifyUser title String message String gt Void let alert UIAlertController
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们
  • 在视图控制器之间传递数据使用从嵌入导航控制器的视图到 tabbarcontroller 的 Segue

    我有两个视图 我想将数据从一个视图传递到下一个视图 第一个视图是我想要传递给下一个视图的数据的地方 我们称之为SourceViewController 然而SourceViewController嵌入在一个NavigationViewCon
  • iOS:Swift - 如何在触摸时向地图添加精确定位并获取该位置的详细地址?

    我想在 iOS 地图的触摸上添加注释并获取各个位置的详细地址 地标 我如何在 Swift 中实现这一目标 提前致谢 要对地图上的触摸做出反应 您需要为地图视图设置点击识别器 in viewDidLoad let gestureRecogni
  • Swift 3 中是否提供内置内部函数?

    我可以在 Xcode 自动完成弹出窗口中看到各种内置函数 如 builtin popount builtin clz 等 我不确定这些是从哪里获取的 单击命令不会导致快速定义或任何文档 Swift 3 中是否有 builtin 或等效的内部
  • 如何自动缩放mapView以显示叠加层

    我可以在 mapView 上绘制多边形 但是我需要找到多边形并手动缩放它 有没有办法自动执行此过程 例如调整中心多边形 我浏览过互联网并阅读了一些相关文章 其中大多数都是基于折线和点的 任何形式的帮助将不胜感激 因为我正在寻找解决方案一段时
  • Swift 使用哪种通用排序算法?它在排序数据上表现不佳

    我一直在挑选和探索 Swift 标准库sort 其函数为Array类型 令我惊讶的是 我注意到它在已经排序的数据上表现不佳 对数组进行排序Int打乱顺序似乎比对已经排序的同一个数组进行排序快 5 倍 对已打乱顺序的对象数组进行排序比对已按排

随机推荐

  • sql注入靶场1-65

    第一关 单引号闭合 order by 判断字段数 显示位2 3 输出数据库版本 id 1 union select 1 2 version 输出数据库名称 id 1 union select 1 2 database 查看所有表名 id 1
  • torch.onnx.export():将pytorch模型转换为.onnx模型

    torch onnx export model args f export params True verbose False training False input names None output names None aten F
  • webpack 的externals配置

    官网解释 webpack 中的 externals 配置提供了不从 bundle 中引用依赖的方式 解决的是 所创建的 bundle 依赖于那些存在于用户环境 consumer environment 中的依赖 怎么理解呢 意思是如果需要引
  • Linux FTP服务

    目录 一 FTP概述 1 Standard模式 主动模式 2 Passice模式 被动模式 二 搭建和配置FTP服务 1 实验环境 2 软件安装 3 设置匿名用户访问FTP服务 4 开启服务 关闭防火墙和增强型安全功能 5 匿名访问测试 1
  • Spring Data JPA中常用的注解详解

    我们先看看类前面的两个注解 Entity 对实体注释 任何Hibernate映射对象都要有这个注释 Table name 自定义的表名 完成表和实体之间的映射 跟上面的注解默认需要配置的 Id 把这个类里面所在的变量设置为主键Id Gene
  • 单片机生成PDF文件(STM32+LIBHARU)

    之前发过一个帖子 是STM32移植了一个pdf库 不过那个库功能比较简单 有很多东西都没有 比如加载图片和文件加密 这次主要是为了文件加密 翻阅了一下资料 单片机做PDF文件 网上资料不是很多 可以说基本上找不着 github上翻源码 翻了
  • windows查看功耗

    可以在Windows系统中查看功耗的方法有以下几种 使用任务管理器 在Windows桌面上按下Ctrl Alt Delete键 选择任务管理器 然后在 性能 选项卡中单击 电源使用情况 查看功耗信息 使用系统监视器 打开系统监视器 在Win
  • java 图片Base64转成文件流,直接在浏览器访问图片

    因为业务 需要把图片base64转成文件流 然后直接在浏览器访问就可以看见图片 回显图片 author liuhengliang return ModelAndView RequestMapping value image private
  • 基于51单片机的温度烟雾报警系统设计

    功能 本实例是基于51单片机的温度烟雾报警系统 主要硬件由51单片机最小系统 LCD1602液晶屏电路 烟雾检测电路 温度感应电路 蜂鸣器报警电路 ADC0832转换电路 LED指示灯电路和按键电路构成 1 LCD1602液晶屏 第一行显示
  • Colab .ipynb 从本地/云端/GitHub 导入并使用.py文件

    1 下载 上传目标文件 1 从GitHub下载所需repo 下载Code 下载 Zip 文件保存到本地 2 上传至云端Google Drive 上传成功后就能在My Drive看到文件夹了 尝试过直接Clone repo到Colab 但是后
  • python爬取考研网的信息

    今天我们使用python来爬取考研网站的信息 目标网站 https yz chsi com cn zsml queryAction do 使用的库 requests bs4 pandas 这些库统一可以使用pip进行统一安装 pip ins
  • VSCode 插件安装:中文(简体)语言包(附带:不生效解决方案)

    文章目录 VSCode 安装插件 中文 简体 语言包 中文语言包不生效解决方案 打开 命令面板 配置显示语言 选择中文 重启VSCode 效果 中文界面 VSCode 安装插件 中文 简体 语言包 插件市场搜索 中文 选择如下插件安装 Ch
  • Vue3自定义指令之前端水印功能实现

    一 前置知识 Vue 中的自定义指令 先来说说 vue2和vue3中自定义全局指令的区别 相同点 指令的应用场景 原理是一致的 不同点 生命周期钩子函数名 指令定义的格式不一样 vue2中自定义全局指令 定义 注册一个全局自定义指令 v f
  • 一篇关于如何用深度学习完成自动上色(Automatic Image Colorization)的论文浅析

    论文标题是 Let there be Color Joint End to end Learning of Global and Local Image Priors for Automatic Image Colorization wit
  • 【转载】英语动词过去式ed的发音规则

    规则动词词尾加 ed有三种读音 1 在清辅音后读作 t 如 asked helped watched stopped 2 在浊辅音和元音后读作 d 如 enjoyed studied moved called 3 在t d后读作 id 如
  • 基于vue-cli3模板的axios封装项目

    为了更便捷的使用项目框架 本模板为空白项目 但是已经为大家封装了axios方法和post get请求 内有基础案例 请大家按着自己项目需要进行修改使用 axios interceptors response use response gt
  • 采样位数、采样率、波特率

    实例 16bit 16K 115200 1 采样位数 即采样值或取样值 就是将采样样本幅度量化 它是用来衡量声音波动变化的一个参数 也可以说是声卡的分辨率 它的数值越大 分辨率也就越高 所发出声音的能力越强 在计算机中采样位数一般有8位和1
  • Spring Cloud 微服务

    Spring Cloud 微服务架构介绍 单体架构 单体架构也称之为单体系统或者是单体应用 就是把系统中所有的功能 模块耦合在一个应用中的架构方式 特点 打包成一个独立的单元 导成一个唯一的 jar 包或者是 war 包 会一个进程的方式来
  • 金算盘高手论坛资料中心_3D006期 菜鸟论坛精英PK专栏 速来围观!!

    点上方 菜鸟选号论坛 点右上角 选 星标 每日上午更新 星标置顶与大神不走散 苹果是置顶 安卓是星标 点击 菜鸟选号论坛 关注我们 论坛明星版块 集全网各路高手之大乘 打造草根明星 展示舞台 同时主要是为广大关注彩友 在每一期 推出个人擅长
  • swift编程入门(非常详细)从零基础入门到精通,看完这一篇就够了

    文章目录 1 读后概述 2 语法笔记 2 1 说明 2 2 基础类型 2 3 运算符 2 4 字符与字符串 2 4 控制流 2 5 函数 2 6 闭包 2 7 枚举 结构体 类 2 8 类的构造与析构 2 9 属性监听器 2 10 类的继承
Powered by Hwhale