常量与变量
//导入模块
import UIKit
//常量
let number = 10
let name = "hello swift"
//变量
var str = "Hello, playground"
//在一行中声明多个常量或者多个变量,用逗号隔开
var bullish = false,btcPrice = 7800
let number1 = 11,number2 = 12
//常量和变量可以包括任何字符,包括Unicode字符
let π = 3.14159
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"
类型注解
//类型注解
var welcome : String
//在一行中定义多个同样类型的变量,用逗号分割,并在最后一个变量名之后添加类型注解
var red,green,blue:Double
输出print
//输出常量和变量
print(name)
print("this is value:\(🐶🐮)")
注释
//单注释
/*这是多行注释
注意是多行的哦*/
/*这是第一个多行注释的开头
/*s这是第二个多行注释*/
这是第一个多行注释的结尾
*/
//分号,以下这种情况必须加分号,即打算在同一行内写多条独立的语句;
let fenhao = "fenhao";print(fenhao)
数据类型-整数(Int、Uint)与浮点数(Double、Float)
- 在32位平台上,
Int
和Int32
长度相同。 - 在64位平台上,
Int
和Int64
长度相同。 - 在32位平台上,
UInt
和UInt32
长度相同。 - 在64位平台上,
UInt
和UInt64
长度相同。
//基本类型
//整数
let minValue = UInt8.min // minValue 为 0,是 UInt8 类型
let maxValue = UInt8.max // maxValue 为 255,是 UInt8 类型
//浮点数
/*
Double 表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。
Float 表示32位浮点数。精度要求不高的话可以使用此类型。
*/
var f = 5
f.advanced(by:1)// 6
//当前值(5)加上特定的值(1)之后的数值
f.distance(to:8) // 3
//当前值(5)距离特定值(8)的差值
类型安全和类型推断
如果表达式中同时出现了整数和浮点数,会被推断为 Double 类型:
let anotherPi = 3 + 0.14159
// anotherPi 会被推测为 Double 类型
数值型字面量
- 一个十进制数,没有前缀
- 一个二进制数,前缀是
0b
- 一个八进制数,前缀是
0o
- 一个十六进制数,前缀是
0x
下面的所有整数字面量的十进制值都是 17
:
let decimalInteger = 17
let binaryInteger = 0b10001 // 二进制的17
let octalInteger = 0o21 // 八进制的17
let hexadecimalInteger = 0x11 // 十六进制的17
数据类型转换
整数转浮点数
let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine
// pi 等于 3.14159,所以被推测为 Double 类型
还有一个更简单的函数
var f = 5
var fString = f.description
// fString 值为 "5"
浮点数转整数
let integerPi = Int(pi)
// integerPi 等于 3,所以被推测为 Int 类型
Float、Double
var d:Double = 3.5
d.addProduct(2.0,4.0) //将变量的值,加上两个给定值的乘积
// 2.0 * 4.0 + 3.5 = 11.5
d.advanced(by:1)// 4.5
//当前值加上特定的值之后的数值
d.distance(to:8) // 4.5
//获得给定的值和变量之间的差值
var e = 24.0
e.significand //1.5
//获得浮点数值的有效位数
e.exponent //4
//获得浮点数值的指数
e.binade //16
//获得和24.0具有相同符号和指数的浮点数值,且有效位数为1
e.bitPattern
//获得数值的编码的位模式
e.description //“24.0”
//浮点数转换为字符串后的值
e.isFinite //true
//检查当前的浮点数值是否为有限数值
e.isInfinite //false
//检查当前的浮点数值是否为无限数值
e.isLess(than: 6.0) //false
//检查当前的浮点数值是否小于6.0
e.isLessThanOrEqualTo(6.0)//false
//检查当前的浮点数是否小于或者等于6.0
e.isNaN//false
//检查当前的浮点数是否为非数字
e.isZero//false
//检查当前的浮点数值是否为零
e.magnitude // 24
//获得当前数的值大小
e.negate() //-24
//获得当前浮点数的负值(相反数)
e.negate() // 24
//再次获得当前浮点数的负值
//取整的几种取舍方法
var r = 12.5
r.rounded(.down) //12
r = -12.5
r.rounded(.down) //-13
12.5.rounded(.up) //13
-12.5.rounded(.up) //-13
12.5.rounded(.towardZero) //12
-12.5.rounded(.towardZero) //-12
12.2.rounded(.toNearestOrAwayFromZero)//12
12.5.rounded(.toNearestOrAwayFromZero)//13
-12.2.rounded(.toNearestOrAwayFromZero)//-12
-12.5.rounded(.toNearestOrAwayFromZero)//-13
13.2.rounded(.toNearestOrEven)//13
13.5.rounded(.toNearestOrEven)//14
12.5.rounded(.toNearestOrEven)//12
//取余
14.0.truncatingRemainder(dividingBy: 3.0) //2
14.0.remainder(dividingBy: 3.0) //-1
数据类型-布尔型(Boolean)
Swift 有两个布尔常量,true
和 false