Swift 基本语法01-Swift简介

一个iOS开发初级菜鸡.png

Swift 基本语法02-"let"和"var" Swift 基本语法03-"if let"和"guard let" Swift 基本语法04-"switch"和"for" Swift 基本语法05-"String" Swift 基本语法06-数组和字典

Swift 简介

  1. Swift2014年06月WWDC大会发布
  • 2015年底开源
  • IBM开始用Swift做后台开发
  • Swift取消了预编译指令(包括宏,比如Masonry
  • 没有了中括号,和其它语言比较接近
  • 3.0 对于Foundation框架做了重大调整,去除了NS前缀
  • 将绝大部分Class转换为struct
  • 访问当前对象的属性,可以不用self.,建议:一般情况都不用。只有闭包的时候才去用
  • 取消了预编译指令
  • 自动推导:变量/常量的类型会根据=(等号)右侧代码执行结果,推导对应的类型
  • Swift 中对类型要求异常严格,不允许直接运算(不会做默认的隐式的转换,所有的类型确定,都由程序员负责)
let x = 10
let y = 10.5

print(x + y)        // 会直接报错(Binary operator '+' cannot be applied to operands of type 'Int' and 'Double')
print(x + Int(y))   // 这样不会报错,输出结果为`20`
OC 中用类型强转->(int)y
Swift 中Int(y)->结构体的构造函数
Swift 中,不存在基本数据类型,都是结构体(考虑安全性和速度,统一做了语法的调整)

1. Button 的创建

// 创建按钮
let btn = UIButton(type: .contactAdd)
view.addSubview(btn)
btn.center = view.center
btn.addTarget(self, action: #selector(clickMe), for: .touchUpInside)

// 按钮的点击事件
func clickMe(btn:UIButton) -> () {
    print(#function)
    print(btn)
}

2. View 设置背景色

let v = UIView(frame: CGRect(x: 0, y: 20, width: 100, height: 100))
// 代码设置颜色
v.backgroundColor = UIColor.red
// 颜色选择器直接设置
v.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 0, alpha: 1)
view.addSubview(v)

2.1-设置颜色.png

3. ImageView 设置图片

let imageView = UIImageView(frame: CGRect(x: 0, y: 120, width: 100, height: 100))
imageView.image = UIImage(named: "user")
imageView.image = #imageLiteral(resourceName: "user")
view.addSubview(imageView)

3.1-设置ImageView的图片.png

4. 小技巧

// MARK: - XXXXXX

4.1-标记(带横线).png

 // MARK: XXXXXX

4.2-标记(不带斜线).png

// FIXME: 准备修改XXXXXX

06.png

5. 可选项(Optional)

  • OptionalSwift的一大特色,也是Swift初学者最容易困惑的问题
  • 定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil
  • 定义变量时,在类型后面添加一个?,表示该变量是可选的
  • 变量可选项的默认值是nil 常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值
  • !代表强行解包 - 从可选值中强行获取对应的非空值,如果真的是nil,就会崩溃!程序员必须为每一个!负责
let a: Optional = 10
let b: Int? = 20

print(a)        // Optional(10)
print(b)        // Optional(20)

print(a + b)    // 不能直接相加(Value of optional type 'Optional<Int>' not unwrapped; did you mean to use '!' or '?'?)
print(a! + b!)  // 30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web前端教室

JS基础知识之new操作符 | 前端卧谈会第9期

音频请点此进行收听 音频原文: new操作符是个啥? 就是你搞个 function abc(aa){ this.abc = aa } 然后 var xx = ...

19290
来自专栏友弟技术工作室

golang爬虫初体验

最近在学习golang,看网上很多人都喜欢爬豆瓣,今天我就写了一个golang版的爬虫。对于python爬虫,我很了解,什么dom树,js异步,爬虫技术栈都是没...

19140
来自专栏静晴轩

精妙JS代码段搜集

现在到处都是JavaScript,倘若花点时间去体察,每次都能知道点新的东西。一旦你入了门,你总能从这里或是那里领悟到很多知识。一旦发现些许有意思的东西,总习惯...

36650
来自专栏练小习的专栏

CSS计数器 counter

适用场景: 当排序以及序号变动对服务端造成的压力大的情况下,使用css计数。 在早期,只有ol和ul可以对子元素li进行排序,,而CSS2.1规范中加入了co...

24490
来自专栏行者常至

005.golang 控制语句

10930
来自专栏coder修行路

Python爬虫从入门到放弃(十四)之 Scrapy框架中选择器的用法

Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分 Xpath是专门在X...

20780
来自专栏偏前端工程师的驿站

JS魔法堂:追忆那些原始的选择器

一、前言                                                                            ...

25170
来自专栏偏前端工程师的驿站

JS魔法堂:属性、特性,傻傻分不清楚

一、前言                                   或许你和我一样都曾经被下面的代码所困扰 var el = document.get...

28870
来自专栏十月梦想

JS转义字符

75540
来自专栏Pythonista

Golang实现一个密码生成器

21430

扫码关注云+社区

领取腾讯云代金券