二、语法须知:源文件拓展名:.swift
1、不需要编写main函数:从上往下顺序执行,最前面的代码会自动当作程序的入口
2、不需要在每一条语句后面加上分号:
也可以加分号
有一种情况必须加分号:同一行代码上有多条语句时
注释:
多行注释可以嵌套注释
用 let 声明常量:let radius = 1.2
用 var 声明变量:var x = 1.1,,y = 2.1, z = 3.2
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强类型的语言(不同类型计算会报错)
Swift提供了8、16、32、64无符号/有符号整数:
Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64
最值:
可以通过 min 和 max 获取某个属性的最小值、最大值
let minValue = Int8.min // -128
let maxValue = Int8.max // 127
Swift提供了特殊的
Int / UInt
长度和当前系统平台一样(64位)
报错原因:
两数据类型不同进行运算、超出数据类型的范围数字都会报错
存储范围:
每种数据类型都有各自的存储范围、如果数值超过了存储范围,编译器会直接报错 // UInt8 不能存储负数
整数的4种表示形式:
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次方
16进制:
以0x为前缀,且一定要有指数
let d3 = 0xC.8p0 // 0xMpN :0xM * 2的N次方
4、数字格式:可以增加额外的零 // 001258.000
可以增加额外的下划线_,以增强可读性 let money = 1_000_000.000_1 // 表示100
0000.0001
增加额外的零 0 和 额外的下划线 _ ,并不影响数值
5、类型转换、类型别名:
两个类型不同的数值,是不能直接进行运算的:
赋值时确定了数据类型
⚠️下面写法正确:let sum = 5 + 1.6 // 先做运算、在赋值,为 Double 类型
类型别名:
可以用 typealias 关键字定义类型的别名(类似 C 中 typedef)
typealias MyInt = Int // 给 Int 取别名 MyInt
原类型名称能用在哪些地方,别名就能用在什么地方:let k = MyInt(d1) + age