// 使用 let 来定义常量,使用 var 来定义变量。
let number =78//常量只可赋值一次(常量的值是不能改变的)
varmyvalue =45//变量(变量的值是可改变的)
// 可以在一行中声明多个常量或多个变量,由逗号分隔:
var x = 0.0, y =0.0, z =0.0
// 可以为常量或变量添加类型标注,这样就清楚常量或变量可以存储的值的类型(或者没有初始值),可以在变量名后指定类型,以冒号分割。
let numberlet:Double =78
var numbervar:String//表明它只可以存储 String类型的值
//值永远不会隐式地转化为其他类型。如果你需要转化值的类型,必须显式地创建一个你想要的类型实例。
letlabelString="this is a label"
letnumberWidth=30
letlabelWidth = labelString +String(numberWidth)
println(labelWidth)
// 还有一种非常简便的方法,在字符串里添加值:在圆括号中书写值,并且在括号前添加反斜线(\)
letlabelWidthString ="this is a ... \(number + my value)"
// let labelWidthString = "this is a ... \(labelString)"
println(labelWidthString)
// println 是一个全局函数,输出值并且换行,如果你用 Xcode, println将输出在 Xcode的“console”(控制台)中。(另一个函数 print,功能相同,区别是不会换行)
println("This is a string")
print("This is a string")
// 不同于许多其他语言,Swift不要求为每个语句的结尾处加一个分号( ; ),尽管你可以这样做(如果你愿意)。
// 但是,如果你想在一行中写多个独立的语句时,分号是必需的。
let cat = "miao";println(cat)
// 如果给一个常量赋值20,但没有标明类型,Swift 可以推测出常量类型是Int
// 如果不指定一个常量为浮点类型,Swift 推断出你想要的是Double类型
// 如果你把整数和浮点数同时用在表达式中,Swift 会推测为Double 类型:
// 整数字面值可以写为:
// 一个十进制数,没有前缀
// 一个二进制数,前缀是 0b
// 一个八进制数,前缀是 0o
// 一个十六进制数,前缀是 0x
// 下面的所有整数面值的十进制值都是17:
let dInteger = 17
let bInteger = 0b10001
let oInteger = 0o21
let hInteger = 0x11
// 浮点数面值可以是十进制(没有前缀),或者是十六进制(0x前缀)。必须有至少一个十进制数字(或十六进制数)在小数点两侧。
//
// 浮点数面值还有一个可选的指数(exponent),在十进制浮点数中通过大写或者小写的e来表示,在十六进制浮点数中通过大写或者小写的p来表示。
// 如果一个十进制数的指数为exp,那这个数相当于基数和10^exp(10的exp次方)的乘积:
// 1.25e2 表示 1.25×10^2,等于 125.0
// 1.25e-2 表示 1.25×10^-2,等于 0.0125。
// 如果一个十六进制数的指数为exp,那这个数相当于基数和2^exp(2的exp次方)的乘积:
// 0xFp2 表示 15×2^2,等于 60.0。
// 0xFp-2 表示 15×2^-2,等于 3.75。
//
// 下面的这些浮点字面量都等于十进制的12.1875
let dDouble = 12.1875
let eDouble = 1.21875e1
let hDouble = 0xC.3p0
// 数值类面值可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,这不会影响字面量:
let pDouble = 0003333.42556
let oMillion = 1_000_000
let jMillion = 1_000_000.000_000_1
// 整数和浮点数转换
let t = 6
let pNine = 0.245436
let pbi = Double(t) + pNine
let inPi = Int(pbi)