语法特点:借鉴了OC、C#、JavaScript、Rython等语言特点
同时具备编译型语言的高性能和脚本语言的灵活性。代码简洁, 可以轻松与OC、C混合使用(相互调用)
开发条件:Xcode >= 6.0、OS X > 10.9.3
二、语法须知:源文件拓展名:.swift
1、不需要编写main函数:从上往下顺序执行,最前面的代码会自动当作程序的入口
也可以加分号
有一种情况必须加分号:同一行代码上有多条语句时
多行注释可以嵌套注释
用 let 声明常量:let radius = 1.2
用 var 声明变量:var x = 1.1,,y = 2.1,
Swift程序:
var btn = UIButton()
btn.frame = CGRectMake(20, 20, 100, 80)
btn.backgroundColor = UIColor.blueColor()
self.view.addSubview(btn)
var imageView = UIImageView(image: UIImage(named: "2x"))
imageView.frame = CGRectMake(20, 100, 100, 100)
self.view.addSubview(imageView)
Playground的使用:
import UIKit
//var str = "Hello, playground"
//var num = 12
//num++
//num += 11 + 12 * 3
var btn = UIButton()
btn.frame = CGRectMake(0, 0, 100, 100)
btn.backgroundColor = UIColor.redColor()
btn.layer.cornerRadius = 10
btn
测试用,逐行显示
字符串的简单操作:
var str = "a b c"
var str2 = " d e f"
var string = str + str2 // 拼接字符串
var age = 18; var num = 1024
var name = "lily"
var lily = name + " is \(age) years old, and no " + String(num)
print(lily)
基本上可以用任何喜欢字符作为常量或变量的命名
Mac上通过用control+command+空格 :弹出emoji键盘= ?、?
数字符号(+—*/)、箭头()、非法无效的Unicode字符(⚽️)、关键字、数字开头、单独下划线、、、
三、数据类型
Int、Float、Double、Bool、Character、String、Array、Dictionary、Tuple(元组类型)、Optional(可选类型)首字母大写
在常量/变量名后加冒号和类型名称
let age: Int = 18 // 定义了一个Int类型的常量age
一般没必要指明类型,如果在声明时赋了初始值,Swift自动判断类型
1、变量的初始化: Swift严格要求变量在使用之前必须进行初始化
swift并不会为变量赋初始值、否则会报错
2、整数: Swift强类型的语言(不同类型计算会报错)
Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64
可以通过 min 和 max 获取某个属性的最小值、最大值
let minValue = Int8.min // -128
let maxValue = Int8.max // 127
Int / UInt
长度和当前系统平台一样(64位)
两数据类型不同进行运算、超出数据类型的范围数字都会报错
每种数据类型都有各自的存储范围、如果数值超过了存储范围,编译器会直接报错 // UInt8 不能存储负数
10进制:无前缀 let me = 10
二进制:以0b 为前缀 let me = 0b1010
八进制:以0o 为前缀 let me = 0o12
16 进制:以0x 为前缀 let me = 0xA
3、浮点数: 两种类型Double(64位)精度至少15位小数、Float(32位)精度至少6位小数
Double类型:let m : Float = 12.2 ; let n = 12.3
var mn = Double(m) + n
浮点数可以是10进制/16进制两种来表示
10进制:let d1 = 12.5
let d2 = 0.125e2 // MeN :M*10的N次方
以0x为前缀,且一定要有指数
let d3 = 0xC.8p0 // 0xMpN :0xM * 2的N次方
4、数字格式:可以增加额外的零 // 001258.000
0000.0001
增加额外的零 0 和 额外的下划线 _ ,并不影响数值
5、类型转换、类型别名:
赋值时确定了数据类型
⚠️下面写法正确:let sum = 5 + 1.6 // 先做运算、在赋值,为 Double 类型
可以用 typealias 关键字定义类型的别名(类似 C 中 typedef)
typealias MyInt = Int // 给 Int 取别名 MyInt
原类型名称能用在哪些地方,别名就能用在什么地方:let k = MyInt(d1) + age