iOS-初识swift
在学习iOS开发之前,先掌握一点swift知识是必要的。
note:不论是iOS开发还是编程语言的学习,都应该是迭代、由浅入深的过程,是理论实践相结合的过程。
中文文档 swift3(与swift4稍有不同,多写代码实操练习即可)
http://special.csdncms.csdn.net/the-swift-programming-language-in-chinese/Introduction.shtml
http://wiki.jikexueyuan.com/project/swift/chapter1/chapter1.html
官方文档 swift4
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309
内容确实挺多的,需要多次迭代学习整理,记得在有基础之后,多应用、多看sample code。学语言要买书,真的算了吧,中文版的swift参考书,真的都很扯,要么就是挤出罗列,要么就是官方文档无脑译。
下面罗列一下要点
#outline#
变量、类型;运算符、关键字;控制流;函数;面向对象
一、变量 类型
declare
var welcomeMessage: String
feature:type safe, type inference
var tmp = "iamcoming"
optional
Int Int? Int!
解包语句
可选链
three primary collection types, Array, Set, and Dictionary, as described in Collection Types.
了解定义、调用属性和方法、如何遍历
二、运算符 关键字
type casting
关键字 is as as! as?
三、控制流
循环 for-in
switch
三、function
define
无参、多参、多返回值的函数
func someFunction(argumentLabel parameterName: Int) {
}
返回值
func minMax(array: [Int]) -> (min: Int, max: Int)? {
if array.isEmpty
{ return nil }
else
{ return (12,13)}
}
Default Parameter Values
In-Out Parameters
Function parameters are constants by default.
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
Function Types
相当于函数指针
var mathFunction: (Int, Int) -> Int = addTwoInts
Every function in Swift has a type, consisting of the function’s parameter types and return type. You can use this type like any other type in Swift, which makes it easy to pass functions as parameters to other functions, and to return functions from functions.
四、枚举类型
原来枚举类型还有这么多可以讲的
raw value、关联值、递归定义
五、类和结构体
计算属性、属性观察器
六、protocol
iOS-初识swift的更多相关文章
- iOS、swift、React Native学习常用的社区、论坛
<!----iOS> <!----Swift>*IOS开发常用社区:http://code4app.com/ *IOS开发常用社区:http://www.cocoachina. ...
- iOS开发Swift篇—(一)简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- iOS开发Swift篇—(三)字符串和数据类型
iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www ...
- iOS开发Swift篇—(四)运算符
iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...
- iOS开发Swift篇—(五)元组类型
iOS开发Swift篇—(五)元组类型 一.元组类型介绍 1.什么是元组类型 元组类型由 N个 任意类型的数据组成(N >= 0),组成元组类型的数据可以称为“元素” 示例: let posit ...
- iOS开发Swift篇—(六)流程控制
iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...
- iOS开发Swift篇—(七)函数(1)
iOS开发Swift篇—(七)函数 一.函数的定义 (1)函数的定义格式 func 函数名(形参列表) -> 返回值类型 { // 函数体... } (2)形参列表的格式 形参名1: 形参类型1 ...
- iOS开发Swift篇—(八)函数(2)
iOS开发Swift篇—(八)函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 func sum(num1: Int ...
- iOS开发Swift篇—(九)属性
iOS开发Swift篇—(九)属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个. ...
随机推荐
- 移动端判断微信浏览器安卓浏览器和ios浏览器
$(function(){ var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf ...
- DB数据源配置之抽象(〇)
DB数据源配置之抽象(〇) liuyuhang原创,未经允许禁止转载 DB数据源之SpringBoot+Mybatis踏坑过程实录(一) DB数据源之SpringBoot+MyBatis踏坑过程(二) ...
- cc++面试------17道经典面试题目分析
以下是C/C++面试题目,共计17个题目,其中涵盖了c的各种基础语法和算法, 以函数接口设计和算法设计为主.这17个题目在C/C++面试方面已经流行了多 年,大家需要抽时间掌握好,每一个题目后面附有参 ...
- 如何用hexo搭建个人博客. 亲测有效
搭建博客: 安装node.js和git 以管理员身份进入cmd. 输入: npm install -g cnpm --registry=https://registry.npm.taobao.org ...
- 【shell脚本学习-4】
文本处理 #!/bin/bash#----------文本处理---------- #---------------echo----------------- # "-n":处理光 ...
- css实现未知元素宽高垂直居中和水平居中的方法
第一种:display:table-cell的方式 .container { /*父级容器*/ display:table-cell; text-align:center; vertical-alig ...
- Xshell4 出现Linux中中文字符乱码问题
Xshell5竟然收费了... 没办法只能用回Xshell4 但是不知道是版本不对还是在咋的 发现中文乱码,导致操作非常不方便 解决方案 LANG=zh_CN.big5 执行在终端执行上面的命令就可以 ...
- python应用:主题分类(gensim lda)
安装第三方包:gensim 首先,执行去停词操作(去除与主题无关的词) #-*-coding:utf8-*- import jieba def stopwordslist(filepath): sto ...
- 2.从print到自省
print是一个函数 为什么print是一个函数呢?可以在交互式解释器下 输入: >>> type(print) 输出: <class 'builtin_function_ ...
- ruby net/http模块使用
ruby中的NET::HTTP:这里暂时先列出几个固定用法: 其中一,二不支持请求头设置(header取ruby默认值),只能用于基本的请求,不支持持久连接,如果您执行许多HTTP请求,则不推荐它们: ...